Python Language
De base64-module
Zoeken…
Invoering
Base 64-codering vertegenwoordigt een algemeen schema voor het coderen van binaire bestanden in ASCII-tekenreeksindeling met radix 64. De base64-module maakt deel uit van de standaardbibliotheek, wat betekent dat deze samen met Python wordt geïnstalleerd. Inzicht in bytes en strijkers is cruciaal voor dit onderwerp en kan worden beoordeeld hier . In dit onderwerp wordt uitgelegd hoe u de verschillende functies en nummerbases van de base64-module kunt gebruiken.
Syntaxis
- 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)
parameters
Parameter | Beschrijving |
---|---|
base64.b64encode(s, altchars=None) | |
s | Een bytes-achtig object |
altchars | Een bytesachtig object met een lengte van meer dan 2 tekens om de '+' en '=' tekens te vervangen bij het maken van het Base64-alfabet. Extra tekens worden genegeerd. |
base64.b64decode(s, altchars=None, validate=False) | |
s | Een bytes-achtig object |
altchars | Een bytesachtig object met een lengte van meer dan 2 tekens om de '+' en '=' tekens te vervangen bij het maken van het Base64-alfabet. Extra tekens worden genegeerd. |
validate | Als valide Waar is, worden de tekens die niet in het normale Base64-alfabet of het alternatieve alfabet voorkomen, niet weggegooid vóór de opvulcontrole |
base64.standard_b64encode(s) | |
s | Een bytes-achtig object |
base64.standard_b64decode(s) | |
s | Een bytes-achtig object |
base64.urlsafe_b64encode(s) | |
s | Een bytes-achtig object |
base64.urlsafe_b64decode(s) | |
s | Een bytes-achtig object |
b32encode(s) | |
s | Een bytes-achtig object |
b32decode(s) | |
s | Een bytes-achtig object |
base64.b16encode(s) | |
s | Een bytes-achtig object |
base64.b16decode(s) | |
s | Een bytes-achtig object |
base64.a85encode(b, foldspaces=False, wrapcol=0, pad=False, adobe=False) | |
b | Een bytes-achtig object |
foldspaces | Als foldspaces True is, wordt het teken 'y' gebruikt in plaats van 4 opeenvolgende spaties. |
wrapcol | Het aantal tekens vóór een nieuwe regel (0 betekent geen nieuwe regels) |
stootkussen | Als pad True is, worden de bytes opgevuld tot een veelvoud van 4 voordat ze worden gecodeerd |
adobe | Als Adobe True is, wordt de gecodeerde reeks omlijst met '<~' en '' ~> 'zoals gebruikt met Adobe-producten |
base64.a85decode(b, foldspaces=False, adobe=False, ignorechars=b'\t\n\r\v') | |
b | Een bytes-achtig object |
foldspaces | Als foldspaces True is, wordt het teken 'y' gebruikt in plaats van 4 opeenvolgende spaties. |
adobe | Als Adobe True is, wordt de gecodeerde reeks omlijst met '<~' en '' ~> 'zoals gebruikt bij Adobe-producten |
ignorechars | Een bytesachtig object van tekens om te negeren in het coderingsproces |
base64.b85encode(b, pad=False) | |
b | Een bytes-achtig object |
stootkussen | Als pad True is, worden de bytes opgevuld tot een veelvoud van 4 voordat ze worden gecodeerd |
base64.b85decode(b) | |
b | Een bytes-achtig object |
Opmerkingen
Tot Python 3.4 uitkwam, werkten base64-coderings- en decoderingsfuncties alleen met bytes
of bytearray
typen. Nu accepteren deze functies elk bytes-achtig object .
Codering en decodering Base64
Om de base64-module in uw script op te nemen, moet u deze eerst importeren:
import base64
De codeer- en decodeerfuncties van base64 vereisen beide een bytesachtig object . Om onze string in bytes te krijgen, moeten we deze coderen met de ingebouwde codeerfunctie van Python. Meestal wordt de UTF-8
codering gebruikt, maar een volledige lijst van deze standaardcoderingen (inclusief talen met verschillende tekens) vindt u hier in de officiële Python-documentatie. Hieronder is een voorbeeld van het coderen van een string in bytes:
s = "Hello World!"
b = s.encode("UTF-8")
De uitvoer van de laatste regel zou zijn:
b'Hello World!'
Het b
voorvoegsel wordt gebruikt om aan te geven dat de waarde een bytes-object is.
Om Base64 deze bytes te coderen, gebruiken we de functie base64.b64encode()
:
import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
print(e)
Die code zou het volgende opleveren:
b'SGVsbG8gV29ybGQh'
die zich nog steeds in het bytes-object bevindt. Om een string uit deze bytes te krijgen, kunnen we de methode decode()
Python gebruiken met de UTF-8
codering:
import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
s1 = e.decode("UTF-8")
print(s1)
De output zou dan zijn:
SGVsbG8gV29ybGQh
Als we de tekenreeks willen coderen en vervolgens decoderen, kunnen we de methode base64.b64decode()
gebruiken:
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)
Zoals je misschien had verwacht, zou de uitvoer de oorspronkelijke tekenreeks zijn:
Base64 Encoded: SGVsbG8gV29ybGQh
Hello World!
Codering en decodering Base32
De base64-module bevat ook coderings- en decoderingsfuncties voor Base32. Deze functies lijken erg op de Base64-functies:
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)
Dit zou de volgende uitvoer opleveren:
Base32 Encoded: JBSWY3DPEBLW64TMMQQQ====
Hello World!
Codering en decodering Base16
De base64-module bevat ook coderings- en decoderingsfuncties voor Base16. Base 16 wordt meestal hexadecimaal genoemd . Deze functies lijken erg op de functies Base64 en Base32:
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)
Dit zou de volgende uitvoer opleveren:
Base16 Encoded: 48656C6C6F20576F726C6421
Hello World!
Codering en decodering ASCII85
Adobe heeft zijn eigen codering gemaakt, ASCII85 genaamd , die vergelijkbaar is met Base85, maar zijn verschillen heeft. Deze codering wordt vaak gebruikt in Adobe PDF-bestanden. Deze functies zijn uitgebracht in Python versie 3.4. Anders zijn de functies base64.a85encode()
en base64.a85encode()
vergelijkbaar met de vorige:
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)
Dit levert het volgende op:
ASCII85 Encoded: 87cURD]i,"Ebo80
Hello World!
Codering en decodering Base85
Net als de functies Base64, Base32 en Base16 zijn de coderings- en decoderingsfuncties van base64.b85encode()
en 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)
die het volgende uitvoert:
Base85 Encoded: NM&qnZy;B1a%^NF
Hello World!