Kódování a dekódování řetězců Base64 v Pythonu

Kódování a dekódování řetězců Base64 v Pythonu

Kódování Base64 se používá k převodu bajtů, které mají binární nebo textová data, na znaky ASCII. Kódování zabraňuje poškození dat při přenosu nebo zpracování prostřednictvím pouze textového systému. V tomto článku budeme diskutovat o kódování a dekódování Base64 a jeho použití ke kódování a dekódování binárních a textových dat.

Base64 kódování:
Jde o typ převodu bajtů na znaky ASCII. seznam dostupných znaků Base64 je uveden níže:

  • 26 velkých písmen
  • 26 malých písmen
  • 10 čísel
  • + a / pro nové řádky

Každý znak Base64 představuje 6 bitů dat. je také důležité poznamenat, že ze zřejmých důvodů není určen pro šifrování.
Chcete-li převést řetězec na znak Base64, měli byste dodržet následující kroky:

  • Získejte hodnotu ASCII každého znaku v řetězci.
  • Vypočítejte 8bitový binární ekvivalent hodnot ASCII
  • Převeďte blok 8bitových znaků na bloky po 6 bitech přeskupením číslic
  • Převeďte 6bitové binární skupiny na jejich příslušné dekadické hodnoty.
  • Pomocí tabulky kódování Base64 zarovnejte příslušné hodnoty Base64 pro každou desetinnou hodnotu.

Níže uvedený obrázek nám poskytuje tabulku kódování Base64.

Zdroj obrázku: Wikipedie

Použití pythonu ke kódování řetězců:
V Pythonu se ke kódování a dekódování dat používá modul base64. Nejprve jsou řetězce převedeny na bajtové objekty a poté zakódovány pomocí modulu base64. Níže uvedený příklad ukazuje, že implementace kódovacích řetězců není base64 znaků.

Příklad:




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}'> )>

Výstup:

Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA== 

Použití Pythonu k dekódování řetězců:
Dekódování Řetězec Base64 je přesně opačný než kódování. Nejprve převedeme řetězce Base64 na nekódované datové bajty a poté převedeme do bajtů podobného objektu na řetězec. Níže uvedený příklad znázorňuje dekódování výše uvedeného příkladu výstupu kódovacího řetězce.

Příklad:




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}'> )>

Výstup:

Decoded string: GeeksForGeeks is the best