在Python中使用字节数组作为AES算法的键

在Python中使用字节数组作为AES算法的键,python,cryptography,aes,Python,Cryptography,Aes,我有一个字节数组,它是一个128位的AES密钥,我想在Python脚本中使用它来使用前面提到的密钥对一些信息进行加密 我将密钥存储为十六进制字符串,类似于“27821D90D240EA4F56D0E7612396C69E”(显然这不是真正的密钥,但格式相同) 我从该键生成了一个字节数组,这是我在其他语言(Java、C#和PHP)中使用AES键的方式,如下所示: AES_KEY = bytearray.fromhex('27821D90D240EA4F56D0E7612396C69E') 这很好

我有一个字节数组,它是一个128位的AES密钥,我想在Python脚本中使用它来使用前面提到的密钥对一些信息进行加密

我将密钥存储为十六进制字符串,类似于“27821D90D240EA4F56D0E7612396C69E”(显然这不是真正的密钥,但格式相同)

我从该键生成了一个字节数组,这是我在其他语言(Java、C#和PHP)中使用AES键的方式,如下所示:

AES_KEY = bytearray.fromhex('27821D90D240EA4F56D0E7612396C69E')
这很好,但当我尝试使用它创建密码时,它会抱怨在第一个参数中需要一个字符串:

cipher = AES.new(AES_KEY, AES.MODE_CBC, os.urandom(16));
TypeError:参数1必须是字符串或只读缓冲区,而不是 拜特利

我尝试从字节数组中获取字符串,如下所示:

AES_KEY = bytearray.fromhex('27821D90D240EA4F56D0E7612396C69E').decode()

无效,因为该键中存在非ascii和非unicode值

更换钥匙不是一个选项

有什么想法吗


提前多谢,

很显然,这就做到了:

AES_KEY = str(bytearray.fromhex('27821D90D240EA4F56D0E7612396C69E'))

现在看起来很明显,不是吗?

你在使用哪个库,pycrypto?@kennytm是的。不过,我想我已经找到了解决办法。
AES_KEY = str(bytearray.fromhex('27821D90D240EA4F56D0E7612396C69E'))