我有一个 base64 编码的随机数作为 24 个字符的字符串:

nonce = "azRzAi5rm1ry/l0drnz1vw=="

我想要一个 16 字节的 int:
0x6b3473022e6b9b5af2fe5d1dae7cf5bf

我最好的尝试:
from base64 import b64decode

b64decode(nonce)

>> b'k4s\x02.k\x9bZ\xf2\xfe]\x1d\xae|\xf5\xbf'

如何从 base64 字符串中获取整数?

最佳答案

要从字符串中获取整数,您可以执行以下操作:

代码:

# 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

关于python - 将 base64 编码的字符串转换为十六进制整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48981946/

10-12 06:18