首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用十六进制格式的密钥进行XTEA解密

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

Stack Overflow用户
提问于 2013-09-08 07:04:29
回答 1查看 1.5K关注 0票数 1

我正在尝试解密使用XTEA算法加密的数据。我有128位的钥匙。

到目前为止,我检查的所有实现都接受16个字符的字符串(ASCII)形式的键。但是,我的密钥是十六进制格式(32个字符)或4个DWORD。

有没有一个实现可以指定十六进制格式的密钥来解密数据?

我在网上查看了一些实现,例如:

https://code.google.com/p/zzt-code-base/source/browse/trunk/src/python/xtea.py

它将需要修改源代码,以使用十六进制格式的密钥进行解密。

特别是在函数中,行中的xtea_decrypt():

代码语言:javascript
复制
k = struct.unpack(endian+"4L",key)

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

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

EN

回答 1

Stack Overflow用户

发布于 2013-09-10 05:35:36

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

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

所以这可以在我的机器上运行(作为Python noob):

代码语言:javascript
复制
key = binascii.unhexlify('00000000000000000000000000000000')
iv = binascii.unhexlify('0000000000000000')
print data == x.xtea_cbc_decrypt(key, iv, x.xtea_cbc_encrypt(key, iv, data))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18678763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档