![OpenSSL でファイルを復号化する際の問題: 「16 進文字列が短すぎるため、長さを 0 バイトで埋めます」](https://rvso.com/image/1703328/OpenSSL%20%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%BE%A9%E5%8F%B7%E5%8C%96%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AE%E5%95%8F%E9%A1%8C%3A%20%E3%80%8C16%20%E9%80%B2%E6%96%87%E5%AD%97%E5%88%97%E3%81%8C%E7%9F%AD%E3%81%99%E3%81%8E%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E9%95%B7%E3%81%95%E3%82%92%200%20%E3%83%90%E3%82%A4%E3%83%88%E3%81%A7%E5%9F%8B%E3%82%81%E3%81%BE%E3%81%99%E3%80%8D.png)
Open SSL を使用してファイルを復号化しようとしているときに問題が発生しています。講師から提供されたという名前のファイルがありfc382Crypto.bin
、CBC モードの blowfish アルゴリズムを使用してそれを復号化する必要があります。
ファイルを復号化するために使用しているコマンドは次のとおりです。
openssl enc -aes-128-cbc -d -in fc382Crypto.bin -out decrypted_output.txt -K 112233445566778899 -iv 0000000000000000
しかし、次のエラーが引き続き発生します。
hex string is too short, padding with zero bytes to length
hex string is too short, padding with zero bytes to length
bad decrypt
オプションを追加してコマンドを調整してみました-nopad
が、問題は解決しません。また、ファイルfc382Crypto.bin
が破損していないことを確認するために、ファイルの整合性も検証しました。
講師から提供された暗号化設定は次のとおりです。
Algorithm: Blowfish
Mode: CBC
Key: 112233445566778899
IV: 0
このエラーが発生する理由や解決方法がわかりません。OpenSSL を使用してこのファイルを正しく復号化する方法について、ガイダンスを提供していただけませんか?
答え1
このエラーが発生する理由や解決方法がわかりません。
128 ビットの暗号化アルゴリズムを使用しています。したがって、暗号化キーと初期化ベクトル (IV) は 128 ビットの長さである必要があります。
鍵:0x00000000000000112233445566778899
IV: 0x00000000000000000000000000000000
AES-128 の暗号化方式は、メディア セグメントが 128 ビット キー、暗号ブロック チェーン (CBC)、公開鍵暗号化標準 #7 (PKCS7) パディング [RFC5652] を使用した Advanced Encryption Standard (AES) [AES_128] を使用して完全に暗号化されていることを示します。CBC は、初期化ベクトル (IV) 属性値またはメディア シーケンス番号のいずれかを IV として使用して、各セグメント境界で再開されます。セクション 5.2 を参照してください。
IV
値は、キーで使用される 128 ビットの符号なし整数初期化ベクトルを指定する 16 進シーケンスです。IV 属性を使用するには、互換性バージョン番号 2 以上が必要です。IV 属性が使用されるタイミングについては、セクション 5.2 を参照してください。