我试图通过以下两个函数来理解我看到的一些不同的行为:
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)
如果我将十六进制字符串传递给前者,我会在最后使用换行符将其返回,而后者则不会。这有什么理由吗?
答案 0 :(得分:3)
没什么特别的,执行者决定这样做。它记录在binascii module。
将二进制数据转换为base64编码中的ASCII字符行。返回值是转换后的行,包括换行符。数据长度最多应为57,以符合base64标准。
如果你对right strip
它感到不舒服:
hex_to_64('aa').rstrip('\n')
>>>'qg=='
希望这有帮助!