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