【发布时间】:2020-04-28 02:43:02
【问题描述】:
我正在使用pycrypto 模块进行 AES 加密。并且使用文档我已经写下了以下函数,但它总是给出错误IV must be 16 bytes long,但我使用的是 16 字节长的 IV。
def aes_encrypt(plaintext):
"""
"""
key = **my key comes here**
iv = binascii.hexlify(os.urandom(16)) # even used without binascii.hexlify)
aes_mode = AES.MODE_CBC
obj = AES.new(key, aes_mode, iv)
ciphertext = obj.encrypt(plaintext)
return ciphertext
【问题讨论】:
-
它应该可以在没有 hexlify 的情况下工作。再试一次,看看你是否得到同样的错误信息。
-
删除
binascii.hexlify为我修复了它。 -
nop,它不工作
-
如果它不起作用,您为什么接受刚刚删除
hexlify的答案? -
@interjay 抱歉,但删除
hexlify后,我错了;y 使用了 32 个字节而不是 16 个字节,所以它抛出了同样的错误
标签: python encryption pycrypto