当我尝试使用pycrypto将AES 128加密代码的输出转换为十六进制时。我正在使用hexlify。对于32位输入,输出为64位。对于任何输入,输出总是加倍,当使用在线编译器时,我得到一个完美的32位输出。看错了
在实现数据时,我应该将数据转换为与输入相同的格式。
text= 3235383334332b352b3934363230383037312b3100000000
key ='0123456789abcdef'
iv = '/00/00/00/00/00/00/00/00/00/00/00/00/00/00/00/00'
encryptor = AES.new(key,mode,IV=iv)
output=encryptor.encrypt(text)
我将加密输出视为
?"?χ?v???
؛?3(???nyA??U?}??/??>
我想将其转换为我可以阅读的格式,因此将其转换为十六进制
efb82283cf87e7127696baad0c1bd89b3781331c289db9f96e7941d3cd55c77db8a72fdcdd3e1ac1bc9031c61c998e49
你能建议一些其他可读的格式,我可以把我的数据转换成??
答案 0 :(得分:1)
我引用python documentation for binascii.hexlify(强调补充):
返回二进制数据的十六进制表示。数据的每个字节都转换为相应的2位十六进制表示。 结果字符串因此是数据长度的两倍。
在实现数据时,我应该将数据转换为与输入相同的格式。
根本不要转换它。只需将其写为二进制数据。