Codifica e decodifica di stringhe Base64 in Python

Codifica e decodifica di stringhe Base64 in Python

La codifica Base64 viene utilizzata per convertire byte che contengono dati binari o di testo in caratteri ASCII. La codifica impedisce che i dati vengano danneggiati quando vengono trasferiti o elaborati tramite un sistema di solo testo. In questo articolo discuteremo della codifica e decodifica Base64 e dei suoi usi per codificare e decodificare dati binari e di testo.

Codifica Base64:
È un tipo di conversione di byte in caratteri ASCII. l'elenco dei caratteri Base64 disponibili è riportato di seguito:

  • 26 lettere maiuscole
  • 26 lettere minuscole
  • 10 numeri
  • + e / per le nuove righe

Ogni carattere Base64 rappresenta 6 bit di dati. è anche importante notare che non è pensato per la crittografia per ovvi motivi.
Per convertire una stringa in un carattere Base64 è necessario seguire i seguenti passaggi:

  • Ottieni il valore ASCII di ciascun carattere nella stringa.
  • Calcola l'equivalente binario a 8 bit dei valori ASCII
  • Converti il ​​blocco di caratteri da 8 bit in blocchi da 6 bit raggruppando nuovamente le cifre
  • Convertire i gruppi binari a 6 bit nei rispettivi valori decimali.
  • Utilizzare la tabella di codifica Base64 per allineare i rispettivi valori Base64 per ciascun valore decimale.

L'immagine seguente ci fornisce una tabella di codifica Base64.

Fonte immagine: Wikipedia

Utilizzo di Python per codificare le stringhe:
In Python il modulo base64 viene utilizzato per codificare e decodificare i dati. Innanzitutto, le stringhe vengono convertite in oggetti simili a byte e quindi codificate utilizzando il modulo base64. L'esempio seguente mostra che l'implementazione delle stringhe di codifica non è composta da caratteri Base64.

Esempio:




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

Produzione:

Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA== 

Usare Python per decodificare le stringhe:
La decodifica della stringa Base64 è esattamente opposta a quella della codifica. Per prima cosa convertiamo le stringhe Base64 in byte di dati non codificati seguiti dalla conversione in oggetti simili a byte in una stringa. L'esempio seguente illustra la decodifica dell'output della stringa di codifica dell'esempio precedente.

Esempio:




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

Produzione:

Decoded string: GeeksForGeeks is the best