Kódovanie a dekódovanie reťazcov Base64 v Pythone
Kódovanie Base64 sa používa na prevod bajtov, ktoré majú binárne alebo textové údaje, na znaky ASCII. Kódovanie bráni poškodeniu údajov pri ich prenose alebo spracovaní prostredníctvom iba textového systému. V tomto článku budeme diskutovať o kódovaní a dekódovaní Base64 a jeho použití na kódovanie a dekódovanie binárnych a textových údajov.
Base64 kódovanie:
Ide o typ prevodu bajtov na znaky ASCII. zoznam dostupných znakov Base64 je uvedený nižšie:
- 26 veľkých písmen
- 26 malých písmen
- 10 čísel
- + a / pre nové riadky
Každý znak Base64 predstavuje 6 bitov dát. je tiež dôležité poznamenať, že zo zrejmých dôvodov nie je určený na šifrovanie.
Ak chcete previesť reťazec na znak Base64, mali by ste postupovať podľa nasledujúcich krokov:
- Získajte hodnotu ASCII každého znaku v reťazci.
- Vypočítajte 8-bitový binárny ekvivalent hodnôt ASCII
- Preveďte 8-bitové časti znakov na 6-bitové časti preskupením číslic
- Preveďte 6-bitové binárne skupiny na ich príslušné desiatkové hodnoty.
- Pomocou tabuľky kódovania Base64 zarovnajte príslušné hodnoty Base64 pre každú desatinnú hodnotu.
Nižšie uvedený obrázok nám poskytuje tabuľku kódovania Base64.
Zdroj obrázka: Wikipedia
Použitie pythonu na kódovanie reťazcov:V Pythone sa modul base64 používa na kódovanie a dekódovanie údajov. Najprv sa reťazce skonvertujú na bajtové objekty a potom sa zakódujú pomocou modulu base64. Nižšie uvedený príklad ukazuje, že kódovanie reťazcov nie je základom 64 znakov.
Prí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ýkon:
Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA==
Použitie Pythonu na dekódovanie reťazcov:
Dekódovanie Reťazec Base64 je presne opačný ako pri kódovaní. Najprv konvertujeme reťazce Base64 na nekódované dátové bajty, po ktorých nasleduje konverzia do bajtov podobného objektu na reťazec. Nižšie uvedený príklad znázorňuje dekódovanie vyššie uvedeného príkladu výstupu kódovacieho reťazca.
Prí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ýkon:
Decoded string: GeeksForGeeks is the best