我正在尝试解密使用XTEA算法加密的数据。我有128位的钥匙。
到目前为止,我检查的所有实现都接受16个字符的字符串(ASCII)形式的键。但是,我的密钥是十六进制格式(32个字符)或4个DWORD。
有没有一个实现可以指定十六进制格式的密钥来解密数据?
我在网上查看了一些实现,例如:
https://code.google.com/p/zzt-code-base/source/browse/trunk/src/python/xtea.py
它将需要修改源代码,以使用十六进制格式的密钥进行解密。
特别是在函数中,行中的xtea_decrypt():
k = struct.unpack(endian+"4L",key)我需要做什么修改才能指定十六进制格式的密钥?
此外,如果有一个现有的实现可以接受十六进制格式的密钥,这将是有帮助的。
发布于 2013-09-10 05:35:36
现代密码学在字节上工作,而不是在字符串上。这包括十六进制字符串。因此,要向函数提供以十六进制指定的键,请首先调用binascii.unhexlify(hexString)。
例如,在您指向的代码中,您可以将默认的iv参数赋值替换为iv=binascii.unhexlify('0000000000000000')。
所以这可以在我的机器上运行(作为Python noob):
key = binascii.unhexlify('00000000000000000000000000000000')
iv = binascii.unhexlify('0000000000000000')
print data == x.xtea_cbc_decrypt(key, iv, x.xtea_cbc_encrypt(key, iv, data))https://stackoverflow.com/questions/18678763
复制相似问题