logo

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:

faktoriaali vuonna c
  • 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}'>)>

>

>

java muuntaa merkki merkkijonoksi

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>