Base64-merkkijonojen koodaus ja dekoodaus Pythonissa

Base64-merkkijonojen koodaus ja dekoodaus Pythonissa

Base64-koodausta käytetään binääri- tai tekstidataa sisältävien tavujen muuntamiseen ASCII-merkeiksi. Koodaus estää tietoja vioittumasta, kun niitä siirretään tai käsitellään pelkän tekstijärjestelmän kautta. Tässä artikkelissa keskustelemme Base64-koodauksesta ja -dekoodauksesta ja sen käytöstä binääri- ja tekstidatan koodaamiseen ja purkamiseen.

Base64-koodaus:
Se on eräänlainen tavujen muuntaminen ASCII-merkeiksi. luettelo käytettävissä olevista Base64-merkeistä on mainittu alla:

  • 26 isoa kirjainta
  • 26 pientä kirjainta
  • 10 numeroa
  • + ja / uusille riveille

Jokainen Base64-merkki edustaa 6 bittiä dataa. On myös tärkeää huomata, että sitä ei ole tarkoitettu salaukseen ilmeisistä syistä.
Voit muuntaa merkkijonon Base64-merkiksi seuraavasti:

  • Hanki ASCII-arvo jokaiselle merkkijonolle.
  • Laske ASCII-arvojen 8-bittinen binäärivastine
  • Muunna 8-bittinen merkkipala 6-bittisiksi paloiksi ryhmittelemällä numerot uudelleen
  • Muunna 6-bittiset binaariryhmät vastaaviksi desimaaliarvoiksi.
  • Käytä Base64-koodaustaulukkoa tasataksesi vastaavat Base64-arvot kullekin desimaaliarvolle.

Alla oleva kuva tarjoaa meille Base64-koodaustaulukon.

Kuvan lähde: Wikipedia

Pythonin käyttäminen merkkijonojen koodaamiseen:
Pythonissa base64-moduulia käytetään tietojen koodaamiseen ja purkamiseen. Ensin merkkijonot muunnetaan tavumaisiksi objekteiksi ja koodataan sitten base64-moduulilla. Alla oleva esimerkki osoittaa, että koodausmerkkijonojen toteutus ei ole base64-merkkiä.

Esimerkki:




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

Lähtö:

Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA== 

Pythonin käyttäminen merkkijonojen purkamiseen:
Base64-merkkijonon dekoodaus on täsmälleen päinvastainen kuin koodauksen. Ensin muunnetaan Base64-merkkijonot koodaamattomiksi datatavuiksi, minkä jälkeen muunnetaan tavumaiseksi objektiksi merkkijonoksi. Alla oleva esimerkki kuvaa yllä olevan esimerkin koodausmerkkijonotulosteen dekoodausta.

Esimerkki:




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

Lähtö:

Decoded string: GeeksForGeeks is the best