私は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')
。
キーの交換はオプションではありません。
アイデア?
事前にどうもありがとう、
あなたはどのライブラリを使用していますか、pycrypto? – kennytm
@kennytmはい。私は解決策を見つけることができたと思う。 –