Opensslはバイナリパスワードフレーズをパラメータとして渡します。

Opensslはバイナリパスワードフレーズをパラメータとして渡します。

このopensslコマンドは私にとってうまくいきます。

openssl aes-128-ecb -d -in encrypted_base64.txt -K 4D1D75237C31E7732030C69F209F23154418373335E049C4F567C7B6D422ABD0 -base64

パスワードファイルを使用して同じことをどのように実行できますか?私はこれをしようとしています:

openssl aes-128-ecb -d -in encrypted_base64.txt -pass file:data_key_plaintext.bin -base64

作業コマンドを含むbad magic number.byteを取得します。例えばdata_key_plaintext.bin-K

> hexdump data_key_plaintext.bin
0000000 4d 1d 75 23 7c 31 e7 73 20 30 c6 9f 20 9f 23 15
0000010 44 18 37 33 35 e0 49 c4 f5 67 c7 b6 d4 22 ab d0
0000020

これopenssl ドキュメント説明する

file:pathname - パス名の最初の行はパスワードです。

これはバイナリパスワードフレーズにどのように当てはまりますか?

ベストアンサー1

指定されたパスワードは、指定された-pass実際の暗号化キーとは異なります-K。 opensslはハッシュ関数を使用してパスワードを処理し、特定のビット長の実際のキーを派生させます。したがって、パスワードは通常、印刷可能な文字のみを使用する短くて覚えやすい文字列です。

実際のキー、IV、およびソルトを見ることでこれを行うことができます-P。キーは128ビットキーの長さに切り捨てられますaes-128-ecb。また参考にしてください-ecbモデル弱くて一般的な使用には適していません。

$ openssl aes-128-ecb -P -K 4D1D75237C31E7732030C69F209F23154418373335E049C4F567C7B6D422ABD0
salt=EA7B538100000000
key=4D1D75237C31E7732030C69F209F2315
$ openssl aes-256-cbc -P -pass pass:secret
salt=332A7608A01A609A
key=1B27C46F481CFA793C665EEFC3C5B6867735CD326840C598AA6EBCCA5829D066
iv =CE223BAEDAA625C02A397D3E1FCE8E75

~によると手動 -Kファイル入力はサポートされていません。次のようにしたい場合があります。

openssl aes-128-ecb -d -in encrypted_base64.txt -K $(hexdump -v -e '"%02X"' data_key_plaintext.bin) -base64

おすすめ記事