我正在尝试编写一个使用AES加密文件的程序,然而无论我使用什么样的密钥大小都会出现如下错误消息:
ValueError: AES密钥必须是16、24或32个字节长。
以下是用于生成AES对象的代码:
def AESEncryptor(Seed, Block = 16): #Generate AES key and Cipher
iv = Random.new().read(Block)
cipher = AES.new(Seed.encode('utf8'), AES.MODE_CBC, iv)
return cipher, iv
我的生成密钥的代码如下
def genNewSeed(k=2048): #Generate seed for new AES key
return hashlib.sha256(os.urandom(32)).hexdigest()[:11]
根据sys.getsizeof()
,它等于32位,但仍返回错误。