我正在尝试学习加密(特别是AES-256)。我找到了正在查看的代码,但是我试图弄清楚它是如何工作的。这是代码(我没有写这个):
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
from base64 import b64encode, b64decode
key = '/I02fMuSSvnouuu+/vyyD7NuSEVDB/0gte/z50dM0b4='
data = 'test'
cipher = AES.new(b64decode(key), AES.MODE_CBC)
padded_data = pad(data.encode(), cipher.block_size)
print(b64encode(padded_data))
有人可以解释这里发生了什么吗?首先,我试图弄清楚key
的作用。如果我正确理解它的话,它就像一个秘密,您不应该透露出来。您如何拿出自己的钥匙?我尝试随机输入一些内容,但出现一个错误,提示错误的 AES密钥长度。最后,我想确切地知道padded_data
在做什么。这是什么使它加密吗?