web-dev-qa-db-fra.com

Décoder la chaîne Base64 en tableau d'octets

Je créerais un script python qui décode une chaîne Base64 en un tableau d'octets (ou un tableau de valeurs Hex).

Le côté embarqué de mon projet est un micro contrôleur qui crée une chaîne base64 à partir d'un octet brut. La chaîne contient des caractères non imprimables (pour cette raison, je choisis le codage base64).

Du côté PC, j'ai besoin de décoder la chaîne base64 et de récupérer les octets bruts d'origine.

Mon script utilise python 2.7 et la bibliothèque base64:

base64Packet = raw_input('Base64 stream:')

packet = base64.b64decode(base64Packet )

sys.stdout.write("Decoded packet: %s"%packet)

La chaîne résultante est une chaîne de caractères qui contient des caractères non imprimables.

Existe-t-il un moyen de décoder la chaîne base64 en valeurs d'octet (ou hex)?

Merci d'avance!

11
Federico

Vous pouvez utiliser bytearray pour exactement cela. Peut-être que le module binascii et struct peuvent également être utiles.

import binascii
import struct

binstr=b"thisisunreadablebytes"

encoded=binascii.b2a_base64(binstr)
print encoded
print binascii.a2b_base64(encoded)

ba=bytearray(binstr)
print list(ba)

print binascii.b2a_hex(binstr)
print struct.unpack("21B",binstr)
8
janbrohl