Codificarea și decodarea șirurilor Base64 în Python

Codificarea și decodarea șirurilor Base64 în Python

Codarea Base64 este folosită pentru a converti octeții care au date binare sau text în caractere ASCII. Codificarea previne coruperea datelor atunci când sunt transferate sau procesate printr-un sistem de tip text. În acest articol, vom discuta despre codificarea și decodificarea Base64 și despre utilizările sale pentru a codifica și decoda datele binare și text.

Codare Base64:
Este un tip de conversie de octeți în caractere ASCII. lista de caractere disponibile Base64 este menționată mai jos:

  • 26 de litere mari
  • 26 de litere mici
  • 10 numere
  • + și / pentru linii noi

Fiecare caracter Base64 reprezintă 6 biți de date. de asemenea, este important să rețineți că nu este destinat criptării din motive evidente.
Pentru a converti un șir într-un caracter Base64, trebuie urmați următorii pași:

  • Obțineți valoarea ASCII a fiecărui caracter din șir.
  • Calculați echivalentul binar pe 8 biți al valorilor ASCII
  • Convertiți fragmentul de caractere de 8 biți în bucăți de 6 biți prin regruparea cifrelor
  • Convertiți grupurile binare de 6 biți la valorile lor zecimale respective.
  • Utilizați tabelul de codificare Base64 pentru a alinia valorile Base64 respective pentru fiecare valoare zecimală.

Imaginea de mai jos ne oferă un tabel de codificare Base64.

Sursa imagine: Wikipedia

Folosind python pentru a codifica șiruri de caractere:
În Python, modulul base64 este folosit pentru a codifica și decoda datele. Mai întâi, șirurile sunt convertite în obiecte asemănătoare octeților și apoi codificate folosind modulul base64. Exemplul de mai jos arată că implementarea șirurilor de codificare nu are caractere de bază 64.

Exemplu:




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

Ieșire:

Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA== 

Folosind Python pentru a decoda șiruri de caractere:
Șirul de decodare Base64 este exact opus celui de codificare. Mai întâi convertim șirurile Base64 în octeți de date necodați, urmate de conversia în obiect asemănător octeților într-un șir. Exemplul de mai jos ilustrează decodificarea exemplului de mai sus de ieșire șir de codificare.

Exemplu:




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

Ieșire:

Decoded string: GeeksForGeeks is the best