Codieren und Decodieren von Base64-Strings in Python

Codieren und Decodieren von Base64-Strings in Python

Die Base64-Kodierung wird verwendet, um Bytes mit Binär- oder Textdaten in ASCII-Zeichen umzuwandeln. Die Verschlüsselung verhindert, dass die Daten beschädigt werden, wenn sie über ein Nur-Text-System übertragen oder verarbeitet werden. In diesem Artikel besprechen wir die Base64-Kodierung und -Dekodierung und ihre Verwendung zum Kodieren und Dekodieren von Binär- und Textdaten.

Base64-Kodierung:
Es handelt sich um eine Art Konvertierung von Bytes in ASCII-Zeichen. Die Liste der verfügbaren Base64-Zeichen ist unten aufgeführt:

  • 26 Großbuchstaben
  • 26 Kleinbuchstaben
  • 10 Zahlen
  • + und / für neue Zeilen

Jedes Base64-Zeichen repräsentiert 6 Datenbits. Es ist auch wichtig zu beachten, dass es aus offensichtlichen Gründen nicht für die Verschlüsselung gedacht ist.
Um eine Zeichenfolge in ein Base64-Zeichen umzuwandeln, sollten die folgenden Schritte befolgt werden:

  • Rufen Sie den ASCII-Wert jedes Zeichens in der Zeichenfolge ab.
  • Berechnen Sie das 8-Bit-Binäräquivalent der ASCII-Werte
  • Konvertieren Sie den 8-Bit-Zeichenblock in 6-Bit-Blocks, indem Sie die Ziffern neu gruppieren
  • Konvertieren Sie die 6-Bit-Binärgruppen in ihre jeweiligen Dezimalwerte.
  • Verwenden Sie die Base64-Codierungstabelle, um die jeweiligen Base64-Werte für jeden Dezimalwert auszurichten.

Das folgende Bild zeigt uns eine Base64-Codierungstabelle.

Bildquelle: Wikipedia

Verwenden von Python zum Codieren von Zeichenfolgen:
In Python wird das Base64-Modul zum Kodieren und Dekodieren von Daten verwendet. Zunächst werden die Strings in byteartige Objekte umgewandelt und anschließend mit dem Base64-Modul kodiert. Das folgende Beispiel zeigt die Implementierung der Kodierung von Zeichenfolgen, die keine Base64-Zeichen sind.

Beispiel:




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

Ausgabe:

Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA== 

Verwenden von Python zum Dekodieren von Zeichenfolgen:
Die Decodierung von Base64-Strings ist genau das Gegenteil von der Codierung. Zuerst konvertieren wir die Base64-Strings in uncodierte Datenbytes, gefolgt von der Konvertierung in ein byteähnliches Objekt in einen String. Das folgende Beispiel zeigt die Dekodierung der obigen Beispiel-Codierungszeichenfolgenausgabe.

Beispiel:




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

Ausgabe:

Decoded string: GeeksForGeeks is the best