无法使用 AES128 在 Python 中解密简单字符串

问题描述

我从服务器获取 k_dh 作为整数:

k_dh = 119503520092559061448841199568006105540928326398312683239977940696158565641455510032815414544631246909440988946150279621651776468095255682411875734678137913094987602893885584001153718721315823055714857464429284631169985212295788520092555311452302786716587927084384268157895132756379511638032100445133977318010

我必须从中获取最后 16 个字节,我这样做,将其转换为 HEX获取最后 32 个 HEX 字符:

key = str(hex(int(k_dh)))[-32:]

另外,我还从服务器收到密文: chipertext = a6e0397f88668030aa861bb09fee236d

我将其转换为字节: ciphertext = b'\xa6\xe09\x7f\x88f\x800\xaa\x86\x1b\xb0\x9f\xee#m'

使用:ciphertext = bytes.fromhex(ciphertext)

然后我尝试解密但没有成功:

key = unhexlify(key)
IV = Random.new().read(AES.block_size)


decipher = AES.new(key,AES.MODE_CBC,IV)
plaintext = decipher.decrypt(to_decrypt)
print(plaintext)

这给了我 b'\x8d]\xd9)I*\x90\xe52\x88\x04\xc7\xcc+8/'。 应该是一个可读的句子,有什么地方不对,但我不知道在哪里。

希望有人能发现我的错误。 谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)