Python PyCrypto中AES密钥生成器的传递列表
我正在尝试使用Pycrypto生成AES密钥,但收到以下错误: TypeError:“列表”不支持缓冲区接口 对于以下声明:Python PyCrypto中AES密钥生成器的传递列表,python,encryption,cryptography,pycrypto,Python,Encryption,Cryptography,Pycrypto,我正在尝试使用Pycrypto生成AES密钥,但收到以下错误: TypeError:“列表”不支持缓冲区接口 对于以下声明: aescipher = AES.new(mykey, AES.MODE_ECB) mykey,类型为list,包含[1885434739,825373440,0,0] 有人知道如何将mykey转换为AES.new函数的正确类型吗?创建AES密钥时,不应提供任何类型的列表/数组。原始密钥字节通常使用keysize/8字节的字节数组提供。对于AES,仅支持128、192和2
aescipher = AES.new(mykey, AES.MODE_ECB)
mykey
,类型为list
,包含[1885434739,825373440,0,0]
有人知道如何将
mykey
转换为AES.new
函数的正确类型吗?创建AES密钥时,不应提供任何类型的列表/数组。原始密钥字节通常使用keysize/8
字节的字节数组提供。对于AES,仅支持128、192和256位或16、24和32字节的密钥大小
请注意,填充密钥直到它们合适为止可能会导致严重的加密漏洞。因此,使用ECB模式而不是像CBC这样更安全的模式(当然也可以提供身份验证/完整性保护,如GCM)。您是如何获得该列表的?
AES.new
的第一个参数应该是一个字符串。@unutbu它来自这个函数(它工作正常)。我不理解使用str_to_a32
的意图,但仅仅是基于“插入合适的东西”aesciper=AES.new(字节,AES.MODE_)
可能有效。请将对回答问题至关重要的代码放在问题本身中,keekers。问题应该是自包含的。@unutbu你说得有点对,因为我正在移植别人的javascript代码。我现在已经通过使用struct.pack()解决了这个问题