Suche…


Einführung

Die Base 64-Codierung stellt ein allgemeines Schema für die Codierung von Binärzeichen in das ASCII-Zeichenfolgenformat mit Radix 64 dar. Das Base64-Modul ist Teil der Standardbibliothek, dh es wird zusammen mit Python installiert. Das Verständnis von Bytes und Strings ist für dieses Thema von entscheidender Bedeutung und kann hier überprüft werden . In diesem Thema wird erläutert, wie Sie die verschiedenen Funktionen und Nummernbasis des base64-Moduls verwenden.

Syntax

  • base64.b64encode (s, altchars = None)
  • base64.b64decode (s, altchars = None, validate = False)
  • base64.standard_b64encode (s)
  • base64.standard_b64decode (s)
  • base64.urlsafe_b64encode (s)
  • base64.urlsafe_b64decode (s)
  • base64.b32encode (s)
  • base64.b32decode (s)
  • base64.b16encode (s)
  • base64.b16decode (s)
  • base64.a85encode (b, foldspaces = False, wrapcol = 0, pad = False, adobe = False)
  • base64.a85decode (b, foldpaces = False, adobe = False, ignorechars = b \ t \ n \ r \ v
  • base64.b85encode (b, pad = False)
  • base64.b85decode (b)

Parameter

Parameter Beschreibung
base64.b64encode(s, altchars=None)
s Ein Byte ähnliches Objekt
Altäre Ein Byte ähnliches Objekt der Länge 2+ von Zeichen, das die Zeichen '+' und '=' beim Erstellen des Base64-Alphabets ersetzt. Zusätzliche Zeichen werden ignoriert.
base64.b64decode(s, altchars=None, validate=False)
s Ein Byte ähnliches Objekt
Altäre Ein Byte ähnliches Objekt der Länge 2+ von Zeichen, das die Zeichen '+' und '=' beim Erstellen des Base64-Alphabets ersetzt. Zusätzliche Zeichen werden ignoriert.
bestätigen Wenn valide True ist, werden die Zeichen, die nicht im normalen Base64-Alphabet oder im alternativen Alphabet sind , vor der Auffüllprüfung nicht gelöscht
base64.standard_b64encode(s)
s Ein Byte ähnliches Objekt
base64.standard_b64decode(s)
s Ein Byte ähnliches Objekt
base64.urlsafe_b64encode(s)
s Ein Byte ähnliches Objekt
base64.urlsafe_b64decode(s)
s Ein Byte ähnliches Objekt
b32encode(s)
s Ein Byte ähnliches Objekt
b32decode(s)
s Ein Byte ähnliches Objekt
base64.b16encode(s)
s Ein Byte ähnliches Objekt
base64.b16decode(s)
s Ein Byte ähnliches Objekt
base64.a85encode(b, foldspaces=False, wrapcol=0, pad=False, adobe=False)
b Ein Byte ähnliches Objekt
Falträume Wenn foldspaces auf True gesetzt ist, wird das Zeichen 'y' anstelle von 4 aufeinander folgenden Leerzeichen verwendet.
Wrapcol Die Anzahl der Zeichen vor einem Zeilenumbruch (0 bedeutet keine Zeilenumbrüche)
Pad Wenn pad true ist, werden die Bytes vor der Codierung auf ein Vielfaches von 4 aufgefüllt
Adobe Wenn adobe den Wert True hat, wird die kodierte Sequenz mit '<~' und '' ~> 'wie bei Adobe-Produkten eingerahmt
base64.a85decode(b, foldspaces=False, adobe=False, ignorechars=b'\t\n\r\v')
b Ein Byte ähnliches Objekt
Falträume Wenn foldspaces auf True gesetzt ist, wird das Zeichen 'y' anstelle von 4 aufeinander folgenden Leerzeichen verwendet.
Adobe Wenn adobe den Wert True hat, wird die kodierte Sequenz mit '<~' und '' ~> 'wie bei Adobe-Produkten eingerahmt
Ignorarechars Ein bytesähnliches Objekt aus Zeichen, das bei der Kodierung ignoriert werden soll
base64.b85encode(b, pad=False)
b Ein Byte ähnliches Objekt
Pad Wenn pad true ist, werden die Bytes vor der Codierung auf ein Vielfaches von 4 aufgefüllt
base64.b85decode(b)
b Ein Byte ähnliches Objekt

Bemerkungen

Bis zum Erscheinen von Python 3.4 funktionierten base64-Codierungs- und -Decodierungsfunktionen nur mit bytes oder bytearray Typen. Jetzt akzeptieren diese Funktionen alle bytesähnlichen Objekte .

Codierung und Decodierung von Base64

Um das base64-Modul in Ihr Skript aufzunehmen, müssen Sie es zuerst importieren:

import base64

Die base64-Codierungs- und -Decodierungsfunktionen erfordern beide ein bytesähnliches Objekt . Um unseren String in Bytes zu bekommen, müssen Sie ihn mit der integrierten Codierungsfunktion von Python codieren. Am häufigsten wird die UTF-8 Codierung verwendet. Eine vollständige Liste dieser Standardcodierungen (einschließlich Sprachen mit unterschiedlichen Zeichen) finden Sie hier in der offiziellen Python-Dokumentation. Im Folgenden finden Sie ein Beispiel zum Codieren einer Zeichenfolge in Bytes:

s = "Hello World!"
b = s.encode("UTF-8")

Die Ausgabe der letzten Zeile wäre:

b'Hello World!'

Das Präfix b wird verwendet, um anzugeben, dass der Wert ein Byteobjekt ist.

Um diese Bytes zu codieren, verwenden wir die Funktion base64.b64encode() :

import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
print(e)

Dieser Code würde folgendes ausgeben:

b'SGVsbG8gV29ybGQh'

die noch im Byte-Objekt ist. Um einen String aus diesen Bytes zu erhalten, können wir die decode() Methode von Python mit der UTF-8 Codierung verwenden:

import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
s1 = e.decode("UTF-8")
print(s1)

Die Ausgabe wäre dann:

SGVsbG8gV29ybGQh

Wenn wir den String codieren und dann decodieren base64.b64decode() , können wir die base64.b64decode() -Methode verwenden:

import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base64 Encode the bytes
e = base64.b64encode(b)
# Decoding the Base64 bytes to string
s1 = e.decode("UTF-8")
# Printing Base64 encoded string
print("Base64 Encoded:", s1)
# Encoding the Base64 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base64 bytes
d = base64.b64decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

Wie Sie vielleicht erwartet haben, wäre die Ausgabe die Originalzeichenfolge:

Base64 Encoded: SGVsbG8gV29ybGQh
Hello World!

Codierung und Decodierung von Base32

Das base64-Modul enthält auch Codierungs- und Decodierungsfunktionen für Base32. Diese Funktionen sind den Base64-Funktionen sehr ähnlich:

import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base32 Encode the bytes
e = base64.b32encode(b)
# Decoding the Base32 bytes to string
s1 = e.decode("UTF-8")
# Printing Base32 encoded string
print("Base32 Encoded:", s1)
# Encoding the Base32 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base32 bytes
d = base64.b32decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

Dies würde die folgende Ausgabe erzeugen:

Base32 Encoded: JBSWY3DPEBLW64TMMQQQ====
Hello World!

Codierung und Decodierung von Base16

Das base64-Modul enthält auch Codierungs- und Decodierungsfunktionen für Base16. Die Basis 16 wird am häufigsten als Hexadezimal bezeichnet . Diese Funktionen sind den Funktionen Base64 und Base32 sehr ähnlich:

import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base16 Encode the bytes
e = base64.b16encode(b)
# Decoding the Base16 bytes to string
s1 = e.decode("UTF-8")
# Printing Base16 encoded string
print("Base16 Encoded:", s1)
# Encoding the Base16 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base16 bytes
d = base64.b16decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

Dies würde die folgende Ausgabe erzeugen:

Base16 Encoded: 48656C6C6F20576F726C6421
Hello World!

Kodierung und Dekodierung von ASCII85

Adobe hat eine eigene Kodierung namens ASCII85 erstellt, die der von Base85 ähnelt, jedoch Unterschiede aufweist. Diese Kodierung wird häufig in Adobe PDF-Dateien verwendet. Diese Funktionen wurden in Python Version 3.4 veröffentlicht. Ansonsten base64.a85encode() die Funktionen base64.a85encode() und base64.a85encode() der vorherigen:

import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# ASCII85 Encode the bytes
e = base64.a85encode(b)
# Decoding the ASCII85 bytes to string
s1 = e.decode("UTF-8")
# Printing ASCII85 encoded string
print("ASCII85 Encoded:", s1)
# Encoding the ASCII85 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the ASCII85 bytes
d = base64.a85decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

Dies gibt Folgendes aus:

ASCII85 Encoded: 87cURD]i,"Ebo80
Hello World!

Codierung und Decodierung von Base85

Genau wie die Funktionen Base64, Base32 und Base16 sind die Codierungs- und Decodierungsfunktionen von base64.b85encode() und base64.b85decode() :

import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base85 Encode the bytes
e = base64.b85encode(b)
# Decoding the Base85 bytes to string
s1 = e.decode("UTF-8")
# Printing Base85 encoded string
print("Base85 Encoded:", s1)
# Encoding the Base85 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base85 bytes
d = base64.b85decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

was gibt folgendes aus:

Base85 Encoded: NM&qnZy;B1a%^NF
Hello World!


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow