Depuis deux semaines, je suis en train de lire et de résoudre ce problème, mais tout ce que j'ai essayé n'a pas travaillé :-(base64 python Hex
J'utilise Python 2.7.
je ai, pour autant que je comprends, une base64 chaîne du format: AAMkADk0ZjU4ODc1LTY1MzAtNDdhZS04NGU5LTAwYjE2Mzg5NDA1ZABGAAAAAAAZS9Y2rt6uTJgnyUZSiNf0BwC6iam6EuExS4FgbbOF87exAAAAdGVuAAC6iam6EuExS4FgbbOF87exAAAxj5dhAAA=
Je veux le convertir en une chaîne hexagonale qui devrait aboutir à 00000000194BD636AEDEAE4C9827C9465288D7F40700BA89A9BA12E1314B81606DB385F3B7B100000074656E0000BA89A9BA12E1314B81606DB385F3B7B10000318F97610000
Je l'ai essayé avec le code suivant:.
def itemid_to_entryid(itemid):
decoded_val = base64.b64decode(itemid)
decoded_val = ''.join(["%02X" % ord(x) for x in decoded_val ]).strip()
decoded_val = decoded_val.upper()
return decoded_val
itemid = 'AAMkADk0ZjU4ODc1LTY1MzAtNDdhZS04NGU5LTAwYjE2Mzg5NDA1ZABGAAAAAAAZS9Y2rt6uTJgnyUZSiNf0BwC6iam6EuExS4FgbbOF87exAAAAdGVuAAC6iam6EuExS4FgbbOF87exAAAxj5dhAAA='
entryid = itemid_to_entryid(itemid)
print(entryid)
qui me renvoie toujours les éléments suivants: 0003240039346635383837352D363533302D343761652D383465392D30306231363338393430356400460000000000194BD636AEDEAE4C9827C9465288D7F40700BA89A9BA12E1314B81606DB385F3B7B100000074656E0000BA89A9BA12E1314B81606DB385F3B7B10000318F97610000
et je ne comprends pas, ce que je fais mal et apprécierais vraiment toute aide à comprendre ce que je fais mal.
Amitiés Ben
Êtes-vous sûr de cette première chaîne hexadécimale? Je ne vois pas pourquoi cela commencerait avec tant de 0. –
Votre sortie attendue est seulement la fin de la sortie réelle. Donc, vous devriez avoir une règle pour découper la partie dont vous avez besoin. –
Eh bien - c'est la sortie correcte pour l'entrée donnée ... Je vais juste souligner que 'binascii.hexlify (base64.b64decode (itemid)). Upper()' est plus simple –