蟒蛇的base64十六进制

问题描述 投票:1回答:2

两周以来,我试图和阅读来解决这个问题,但我想一切都没有工作:-(

我使用python 2.7。

我有,据我了解,从格式化,一个base64字符串: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

我真的不明白,我在做什么错了,真的希望得到理解我在做什么错任何帮助。

亲切的问候奔

python base64 hex decoding
2个回答
9
投票

为的base64转换为十六进制字符串的最佳方法是:

# Python 2
>>> base64.b64decode('woidjw==').encode('hex')
# Python 3
>>> base64.b64decode('woidjw==').hex()
'c2889d8f'

您也可以尝试它就像这样:

>>> base64.b64decode('woidjw==')

但我不是输出的粉丝:

'\xc2\x88\x9d\x8f'

至于你的原始请求进入,必须有你的初始数据有点问题,因为它没有在你预期的数据结果:

>>> base64.b64decode('AAMkADk0ZjU4ODc1LTY1MzAtNDdhZS04NGU5LTAwYjE2Mzg5NDA1ZABGAAAAAAAZS9Y2rt6uTJgnyUZSiNf0BwC6iam6EuExS4FgbbOF87exAAAAdGVuAAC6iam6EuExS4FgbbOF87exAAAxj5dhAAA=').encode('hex')

'0003240039346635383837352d363533302d343761652d383465392d30306231363338393430356400460000000000194bd636aedeae4c9827c9465288d7f40700ba89a9ba12e1314b81606db385f3b7b100000074656e0000ba89a9ba12e1314b81606db385f3b7b10000318f97610000'

0
投票

如果你只需要与预期输出十六进制的前几个字节,并将其转换:

import base64
base64.b64encode('\x00\x00\x00\x00\x19\x4B\xD6')

你得到:

AAAAABlL1g==

这不符合您输入的开始。

© www.soinside.com 2019 - 2024. All rights reserved.