Python PyCrypto中AES密钥生成器的传递列表

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

我正在尝试使用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和256位或16、24和32字节的密钥大小


请注意,填充密钥直到它们合适为止可能会导致严重的加密漏洞。因此,使用ECB模式而不是像CBC这样更安全的模式(当然也可以提供身份验证/完整性保护,如GCM)。

您是如何获得该列表的?
AES.new
的第一个参数应该是一个字符串。@unutbu它来自这个函数(它工作正常)。我不理解使用
str_to_a32
的意图,但仅仅是基于“插入合适的东西”
aesciper=AES.new(字节,AES.MODE_)
可能有效。请将对回答问题至关重要的代码放在问题本身中,keekers。问题应该是自包含的。@unutbu你说得有点对,因为我正在移植别人的javascript代码。我现在已经通过使用struct.pack()解决了这个问题