两周以来,我试图和阅读来解决这个问题,但:-(蟒蛇的base64诅咒
我使用python 2.7我什么都试过没有奏效。
我做有,据我了解,从格式的基于64位字符串:AAMkADk0ZjU4ODc1LTY1MzAtNDdhZS04NGU5LTAwYjE2Mzg5NDA1ZABGAAAAAAAZS9Y2rt6uTJgnyUZSiNf0BwC6iam6EuExS4FgbbOF87exAAAAdGVuAAC6iam6EuExS4FgbbOF87exAAAxj5dhAAA=
我想将其转换为十六进制字符串,这将导致00000000194BD636AEDEAE4C9827C9465288D7F40700BA89A9BA12E1314B81606DB385F3B7B100000074656E0000BA89A9BA12E1314B81606DB385F3B7B10000318F97610000
我用下面的代码试了一下:
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)
它总是返回我下面的:0003240039346635383837352D363533302D343761652D383465392D30306231363338393430356400460000000000194BD636AEDEAE4C9827C9465288D7F40700BA89A9BA12E1314B81606DB385F3B7B100000074656E0000BA89A9BA12E1314B81606DB385F3B7B10000318F97610000
,我真的不明白,我在做什么错了,真的会喜欢理解什么是我做错了任何帮助。
亲切的问候 本
您确定第一个十六进制字符串?我不明白为什么它会以这么多的0开始。 –
您的预期产出只是实际产出的结束。所以,你应该有一些规则来削减你需要的部分。 –
嗯 - 这是给定输入的正确输出...我只是指出'binascii.hexlify(base64.b64decode(itemid))。upper()'更直接 –