Python 将base64编码的字符串转换为十六进制整数
我将base64编码的nonce作为24个字符的字符串:Python 将base64编码的字符串转换为十六进制整数,python,base64,encode,Python,Base64,Encode,我将base64编码的nonce作为24个字符的字符串: nonce = "azRzAi5rm1ry/l0drnz1vw==" 我想要一个16字节的整数: 0x6b3473022e6b9b5af2fe5d1dae7cf5bf 我的最佳尝试: from base64 import b64decode b64decode(nonce) >> b'k4s\x02.k\x9bZ\xf2\xfe]\x1d\xae|\xf5\xbf' 如何从base64字符串中获取整数?您可以这样转换
nonce = "azRzAi5rm1ry/l0drnz1vw=="
我想要一个16字节的整数:
0x6b3473022e6b9b5af2fe5d1dae7cf5bf
我的最佳尝试:
from base64 import b64decode
b64decode(nonce)
>> b'k4s\x02.k\x9bZ\xf2\xfe]\x1d\xae|\xf5\xbf'
如何从base64字符串中获取整数?您可以这样转换:
>>> import codecs
>>> decoded = base64.b64decode(nonce)
>>> b_string = codecs.encode(decoded, 'hex')
>>> b_string
b'6b3473022e6b9b5af2fe5d1dae7cf5bf'
要从字符串中获取整数,可以执行以下操作: 代码: 测试代码: 结果:
binascii.hexlify(b64decode(nonce))
或在Python3中,b64decode(nonce.hex()
。
# Python 3
decoded = int.from_bytes(b64decode(nonce), 'big')
# Python 2
decoded = int(b64decode(nonce).encode('hex'), 16)
nonce = "azRzAi5rm1ry/l0drnz1vw=="
nonce_hex = 0x6b3473022e6b9b5af2fe5d1dae7cf5bf
from base64 import b64decode
decoded = int.from_bytes(b64decode(nonce), 'big')
# PY 2
# decoded = int(b64decode(nonce).encode('hex'), 16)
assert decoded == nonce_hex
print(hex(decoded))
0x6b3473022e6b9b5af2fe5d1dae7cf5bf