当我试图转换为十六进制时,我的AES 128加密代码的输出使用pycrypto。我使用的是十六进制.the输出是64位为32位的输入。输出的大小总是任何输入的两倍,当使用在线编译器时,我得到了一个完美的32位output.Whats错误。
在实现数据时,我应该将数据转换成与输入大小相同的格式。
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你能建议一些其他可读的格式,我可以把我的数据转换成??
发布于 2015-07-20 19:48:45
我引用binascii.hexlify的python文档的话(重点是后加的):
返回二进制数据的十六进制表示形式。数据的每一个字节都被转换成相应的2位十六进制表示.因此,结果字符串的长度是数据长度的两倍。
在实现数据时,我应该将数据转换成与输入大小相同的格式。
一点也别改。把它写成二进制数据就行了。
https://stackoverflow.com/questions/31525148
复制相似问题