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

2024-04-25 07:30:13 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我需要做什么修改才能以十六进制格式指定密钥?在

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


Tags: 数据字符串httpscom算法格式googleascii
1条回答
网友
1楼 · 发布于 2024-04-25 07:30:13

现代密码学的工作原理是字节,而不是字符串。这包括十六进制字符串。因此,要向函数提供十六进制指定的键,请首先调用binascii.unhexlify(hexString)。在

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

所以这在我的机器上运行(作为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))

相关问题 更多 >

    热门问题