Kodiranje in dekodiranje nizov Base64 v Pythonu

Kodiranje in dekodiranje nizov Base64 v Pythonu

Kodiranje Base64 se uporablja za pretvorbo bajtov, ki vsebujejo binarne ali besedilne podatke, v znake ASCII. Kodiranje preprečuje, da bi se podatki poškodovali, ko se prenašajo ali obdelujejo prek besedilnega sistema. V tem članku bomo razpravljali o kodiranju in dekodiranju Base64 ter njegovi uporabi za kodiranje in dekodiranje binarnih in besedilnih podatkov.

Kodiranje Base64:
Je vrsta pretvorbe bajtov v znake ASCII. seznam razpoložljivih znakov Base64 je naveden spodaj:

  • 26 velikih črk
  • 26 malih črk
  • 10 številk
  • + in / za nove vrstice

Vsak znak Base64 predstavlja 6 bitov podatkov. pomembno je tudi omeniti, da iz očitnih razlogov ni namenjen šifriranju.
Za pretvorbo niza v znak Base64 sledite naslednjim korakom:

  • Pridobite vrednost ASCII vsakega znaka v nizu.
  • Izračunajte 8-bitni binarni ekvivalent vrednosti ASCII
  • Pretvorite del 8-bitnih znakov v 6-bitne kose s ponovnim združevanjem števk
  • Pretvorite 6-bitne binarne skupine v njihove ustrezne decimalne vrednosti.
  • Uporabite tabelo kodiranja Base64, da poravnate ustrezne vrednosti Base64 za vsako decimalno vrednost.

Spodnja slika nam ponuja tabelo kodiranja Base64.

Vir slike: Wikipedia

Uporaba pythona za kodiranje nizov:
V Pythonu se modul base64 uporablja za kodiranje in dekodiranje podatkov. Najprej se nizi pretvorijo v bajtom podobne objekte in nato kodirajo z uporabo modula base64. Spodnji primer prikazuje implementacijo kodiranih nizov, ki niso znaki base64.

primer:




import> base64> > sample_string> => 'GeeksForGeeks is the best'> sample_string_bytes> => sample_string.encode(> 'ascii'> )> > base64_bytes> => base64.b64encode(sample_string_bytes)> base64_string> => base64_bytes.decode(> 'ascii'> )> > print> (f> 'Encoded string: {base64_string}'> )>

Izhod:

Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA== 

Uporaba Pythona za dekodiranje nizov:
Dekodiranje niza Base64 je ravno nasprotno od kodiranja. Najprej pretvorimo nize Base64 v nekodirane podatkovne bajte, čemur sledi pretvorba v bajtom podoben objekt v niz. Spodnji primer prikazuje dekodiranje izpisa kodiranega niza zgornjega primera.

primer:




import> base64> > > base64_string> => ' R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA =='> base64_bytes> => base64_string.encode(> 'ascii'> )> > sample_string_bytes> => base64.b64decode(base64_bytes)> sample_string> => sample_string_bytes.decode(> 'ascii'> )> > print> (f> 'Decoded string: {sample_string}'> )>

Izhod:

Decoded string: GeeksForGeeks is the best