XTEA解密使用十六进制格式的密钥



我正在尝试解密使用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)

我需要进行哪些修改才能以十六进制格式指定密钥?

此外,如果有一个现有的实现可以接受十六进制格式的密钥,这将有所帮助。

现代密码学适用于字节,而不是字符串。这包括十六进制字符串。因此,要为函数提供以十六进制指定的键,请先调用 binascii.unhexlify(hexString)

例如,在您指向的代码中,您可以将默认的 iv 参数赋值替换为 iv=binascii.unhexlify('0000000000000000')

所以这在我的机器上工作(作为 Python 菜鸟):

key = binascii.unhexlify('00000000000000000000000000000000')
iv = binascii.unhexlify('0000000000000000')
print data == x.xtea_cbc_decrypt(key, iv, x.xtea_cbc_encrypt(key, iv, data))

相关内容

  • 没有找到相关文章

最新更新