编程语言
首页 > 编程语言> > PythonAES加密/解密不会返回相同的结果

PythonAES加密/解密不会返回相同的结果

作者:互联网

下面的代码示例在加密/解密操作后不返回原始文本,我试图弄清楚为什么

from Crypto.Cipher import AES

text = """This is plain text 
to use.
It should be exqctly 128 characters long to avoid padding and it is split
with new lines as in 
file"""

password = "password........"

block = 32
mode = AES.MODE_CBC

enc = AES.new(password, mode)

encrypted = enc.encrypt(text)

print "ORIGINAL: " + text

print "ENCRYPTED: " + str(encrypted)

print "DECRYPTED: " + str(enc.decrypt(encrypted))

谁能说出为什么文本的第一部分格式错误?

解决方法:

我认为,您需要重置初始化向量(IV),以获得所需的结果.简便的方法可能是创建一个用于解密的新AES对象:

enc = AES.new(password, mode)
encrypted = enc.encrypt(text)
print "ORIGINAL: " + text
print "ENCRYPTED: " + str(encrypted)
dec = AES.new(password, mode)
print "DECRYPTED: " + str(dec.decrypt(encrypted))

标签:aes,cryptography,malformed,python
来源: https://codeday.me/bug/20191101/1985294.html