Codificació i descodificació de cadenes Base64 en Python
La codificació Base64 s'utilitza per convertir bytes que tenen dades binàries o de text en caràcters ASCII. La codificació evita que les dades es malmetin quan es transfereixen o es processen mitjançant un sistema només de text. En aquest article, parlarem sobre la codificació i descodificació Base64 i els seus usos per codificar i descodificar dades binàries i de text.
Codificació Base64:
És un tipus de conversió de bytes a caràcters ASCII. la llista de caràcters Base64 disponibles s'esmenten a continuació:
- 26 lletres majúscules
- 26 lletres minúscules
- 10 números
- + i / per a línies noves
Cada caràcter Base64 representa 6 bits de dades. també és important tenir en compte que no està pensat per a xifratge per raons òbvies.
Per convertir una cadena en un caràcter Base64 s'han de seguir els passos següents:
- Obteniu el valor ASCII de cada caràcter de la cadena.
- Calculeu l'equivalent binari de 8 bits dels valors ASCII
- Converteix el fragment de caràcters de 8 bits en trossos de 6 bits reagrupant els dígits
- Converteix els grups binaris de 6 bits als seus respectius valors decimals.
- Utilitzeu la taula de codificació Base64 per alinear els valors de Base64 respectius per a cada valor decimal.
La imatge següent ens proporciona una taula de codificació Base64.
Font de la imatge: Viquipèdia
Utilitzant Python per codificar cadenes:A Python, el mòdul base64 s'utilitza per codificar i descodificar dades. Primer, les cadenes es converteixen en objectes semblants a bytes i després es codifiquen mitjançant el mòdul base64. L'exemple següent mostra que la implementació de cadenes de codificació no són caràcters base64.
Exemple:
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}'> )> |
Sortida:
Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA==
Utilitzant Python per descodificar cadenes:
La descodificació de la cadena Base64 és exactament oposada a la de la codificació. Primer convertim les cadenes Base64 en bytes de dades sense codificar seguits de la conversió en objecte semblant a bytes en una cadena. L'exemple següent mostra la descodificació de la sortida de cadena de codificació de l'exemple anterior.
Exemple:
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}'> )> |
Sortida:
Decoded string: GeeksForGeeks is the best