您链接到的工具只是将十六进制解释为字节,然后将这些字节编码为 Base64。
要么使用binascii.unhexlify() function 将十六进制字符串转换为字节,要么使用bytes.fromhex() class method。然后使用binascii.b2a_base64() function 将其转换为Base64:
from binascii import unhexlify, b2a_base64
result = b2a_base64(unhexlify(hex_string))
或
from binascii import b2a_base64
result = b2a_base64(bytes.fromhex(hex_string))
在 Python 2 中,您还可以使用 str.decode() 和 str.encode() 方法来实现相同的目的:
result = hex_string.decode('hex').encode('base64')
在 Python 3 中,您必须为此使用 codecs.encode() 函数。
Python 3 中的演示:
>>> bytes.fromhex('10000000000002ae')
b'\x10\x00\x00\x00\x00\x00\x02\xae'
>>> from binascii import unhexlify, b2a_base64
>>> unhexlify('10000000000002ae')
b'\x10\x00\x00\x00\x00\x00\x02\xae'
>>> b2a_base64(bytes.fromhex('10000000000002ae'))
b'EAAAAAAAAq4=\n'
>>> b2a_base64(unhexlify('10000000000002ae'))
b'EAAAAAAAAq4=\n'
Python 2.7 演示:
>>> '10000000000002ae'.decode('hex')
'\x10\x00\x00\x00\x00\x00\x02\xae'
>>> '10000000000002ae'.decode('hex').encode('base64')
'EAAAAAAAAq4=\n'
>>> from binascii import unhexlify, b2a_base64
>>> unhexlify('10000000000002ae')
'\x10\x00\x00\x00\x00\x00\x02\xae'
>>> b2a_base64(unhexlify('10000000000002ae'))
'EAAAAAAAAq4=\n'