0

現在、トリッキーな状況にあります。

次のように暗号化された暗号化ファイルを復号化するAndroidメソッドを作成する必要があります。

  • AES256(Rijndael)
  • 次のような16バイトの初期化ベクトルを使用するCipher-Block-Chaining(CBC)。

{0、1、1、2、3、5、8、13、21、34、55、89、144、233、122、100}

ファイルの暗号化キーも知っていますが、今のところ、「ボート」としましょう。

Googleで検索してきましたが、この暗号化の組み合わせを使用したオンラインは見つかりませんでした。Rijndaelアルゴリズムを使用しているものの、初期化ベクトルを選択できないものもあれば、AES256をまったくサポートしていないものもあります。

誰かが私に例を見つける正しい方向に向けたり、上記を行うサンプルコードを投稿したりできますか?

注意:言及することが重要かどうかはわかりませんが、出力ファイルは常に.pdfです。

4

1 に答える 1

1

これは非常に標準的な構成であり、サンプルが見つからなかったとは信じがたいものです。IvParameterSpecIV バイトから を作成し、それで を初期化するCipherだけです。このようなもの:

SecretKey key = getEncryptionKey(); 
byte[] iv = new byte[] { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, (byte)144, (byte)233, 122, 100 };
byte[] cipherBytes = readEncryptedFile();
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
IvParameterSpec ivParams = new IvParameterSpec(iv);
cipher.init(Cipher.DECRYPT_MODE, key, ivParams);
byte[] plaintext = cipher.doFinal(cipherBytes);

ところで、'Rijndael' は AES と同じなので、'AES' だけで検索するとより良い結果が得られます。

于 2012-06-01T08:24:32.557 に答える