【发布时间】:2011-03-10 11:01:38
【问题描述】:
我正在编写一段代码来使用对称加密来加密文本。但它并没有以正确的结果回来......
from Crypto.Cipher import AES
import os
crypto = AES.new(os.urandom(32), AES.MODE_CTR, counter = lambda : os.urandom(16))
encrypted = crypto.encrypt("aaaaaaaaaaaaaaaa")
print crypto.decrypt(encrypted)
这里,解密后的文字与原文不同。
我不太了解密码学,所以请多多包涵。我知道 CTR 模式需要一个“计数器”功能来每次提供一个随机计数器,但是当我的密钥是 32 个字节并且它坚持我的消息也是 16 个字节的倍数时,为什么它需要它是 16 个字节?这正常吗?
我猜它不会回到原始消息,因为计数器在加密和解密之间发生了变化。但是,无论如何,它在理论上应该如何工作?我究竟做错了什么?无论如何,我不得不求助于欧洲央行,直到我弄清楚这一点:(
【问题讨论】:
标签: python cryptography aes encryption-symmetric pycrypto