用python解密十六进制字符串

2024-10-01 11:32:11 发布

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

我用Java(在Android上)加密了一个字符串,得到'A14E71A6F4E8D8E465C3C302C2A96BD2'作为字节数组。在

我现在想用python加密它,但它不起作用:

cipher = 'A14E71A6F4E8D8E465C3C302C2A96BD2'
aes = AES.new(key, AES.MODE_CBC, iv)
print aes.decrypt(cipher)

我已经在网上搜索过了,但没有找到解决办法。在

提前谢谢


Tags: key字符串new字节mode数组javaandroid
2条回答

这可能还不够,你还没有说这是如何加密的,但至少你需要在解密之前对它进行十六进制解码。在

cipherData = binascii.unhexlify(cipher)
...
print aes.decrypt(cipherData)

在Python 2中,可以使用^{}对十六进制字符串进行解码:

from Crypto.Cipher import AES

cipher = 'A14E71A6F4E8D8E465C3C302C2A96BD2'
aes = AES.new(key, AES.MODE_CBC, iv)
print aes.decrypt(cipher.decode('hex'))

如果其他一切都准备好了(iv,密钥,加密模式),这可能会奏效。在

如果您希望在Python 2和Python 3中都能使用,那么可以使用^{}对十六进制编码的字符串进行解码:

^{pr2}$

相关问题 更多 >