为什么binascii.b2a_base64()和base64.b64encode()之间有区别?

时间:2014-01-04 22:06:24

标签: python python-2.7

我试图通过以下两个函数来理解我看到的一些不同的行为:

def hex_to_64(string):
    hex_string = binascii.a2b_hex(string)
    return binascii.b2a_base64(hex_string)

def hex_to_64_2(string):
    hex_string = binascii.a2b_hex(string)
    return base64.b64encode(hex_string)

如果我将十六进制字符串传递给前者,我会在最后使用换行符将其返回,而后者则不会。这有什么理由吗?

1 个答案:

答案 0 :(得分:3)

没什么特别的,执行者决定这样做。它记录在binascii module

  

将二进制数据转换为base64编码中的ASCII字符行。返回值是转换后的行,包括换行符。数据长度最多应为57,以符合base64标准。

如果你对right strip它感到不舒服:

hex_to_64('aa').rstrip('\n')
>>>'qg=='

希望这有帮助!