2016-10-21 18 views
2

私は128ビットのAESキーであるバイト配列を持っています。このキーを使ってPythonスクリプトでこの情報を暗号化したいと思います。バイト配列をPythonのAESアルゴリズムのキーとして使用する

私はキーが "27821D90D240EA4F56D0E7612396C69E"のような16進数の文字列として格納されています(これは実際のキーではありませんが、同じ形式です)。

私はそれは私がこのように、これまでのところ(のJava、C#、およびPHP)他の言語でAESキーを使用している方法ですが、そのキーからバイト配列を生成した:正常に動作します

AES_KEY = bytearray.fromhex('27821D90D240EA4F56D0E7612396C69E') 

が、その後、私は暗号を作成するためにそれを使用しようとすると、それが最初のパラメータに文字列を望んでいると文句を言い:

cipher = AES.new(AES_KEY, AES.MODE_CBC, os.urandom(16)); 

TypeError: argument 1 must be string or read-only buffer, not bytearray

私が代わりにバイト配列から文字列を取得しようとしたとして、 :

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

又はそのキーに非ASCIIおよび非Unicode値があるため、無駄に

AES_KEY = bytearray.fromhex('27821D90D240EA4F56D0E7612396C69E').decode('utf-8') 

キーの交換はオプションではありません。

アイデア?

事前にどうもありがとう、

+0

あなたはどのライブラリを使用していますか、pycrypto? – kennytm

+0

@kennytmはい。私は解決策を見つけることができたと思う。 –

答えて

1

どうやらこれはトリックん、それは

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

それは今かなり明白に見えませんか?

関連する問題