Looking for python Answers? Try Ask4KnowledgeBase
Looking for python Keywords? Try Ask4Keywords

Python Language Base64 de codage et de décodage


Exemple

Pour inclure le module base64 dans votre script, vous devez d'abord l'importer:

import base64

Les fonctions d'encodage et de décodage base64 requièrent toutes deux un objet de type octet . Pour obtenir notre chaîne en octets, nous devons l'encoder en utilisant la fonction de codage intégrée de Python. Le plus souvent, le UTF-8 est utilisé, mais une liste complète de ces encodages standard (y compris les langages avec des caractères différents) peut être trouvée ici dans la documentation officielle de Python. Voici un exemple d'encodage d'une chaîne en octets:

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

La sortie de la dernière ligne serait:

b'Hello World!'

Le préfixe b est utilisé pour indiquer que la valeur est un objet octets.

Pour encoder ces octets en Base64, nous utilisons la fonction base64.b64encode() :

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

Ce code produirait les informations suivantes:

b'SGVsbG8gV29ybGQh'

qui est toujours dans l'objet octets. Pour obtenir une chaîne de ces octets, nous pouvons utiliser la méthode decode() de Python avec le UTF-8 :

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

La sortie serait alors:

SGVsbG8gV29ybGQh

Si nous voulions encoder la chaîne puis décoder, nous pourrions utiliser la méthode base64.b64decode() :

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)

Comme vous vous en doutez, la sortie serait la chaîne d'origine:

Base64 Encoded: SGVsbG8gV29ybGQh
Hello World!