4

AndroidでAES暗号化と復号化に取り組んでいます。AES/CBC を使用して暗号化されたオーディオ ファイルがあります。キーと IV (初期化ベクトル) があります。

私はいくつかのリンクを読みました。これから_

SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");

使用される SecretkeySpec クラス。キーと IV の値はどこで使用すればよいですか?

そして、最初の 256 バイトのデータのみを復号化する必要があります。どうすればこれを達成できますか?

4

1 に答える 1

1

コード スニペットでrawは、キーは (バイト配列として) です。

SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
//                                         ^^^ this is your key

もちろん、キーを 16 進文字列として持っている場合は、それを bytes に変換する必要があります。

暗号化するときは、IV を自分で指定するか、ランダムな IV を生成させることができます。自分自身を指定する場合は、次を使用します。

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); // adjust padding
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, new IvParameterSpec(...));

自動のものを使用したい場合は、呼び出しによって選択されたものを必ず記録してください

cipher.getIV();

復号化の場合は、IV を指定する必要があり、IvParameterSpec暗号化と同様に を使用して指定します。

そして、最初の 256 バイトのデータのみを復号化する必要があります。どうすればこれを達成できますか?

a の使用を検討し、CipherInputStreamそこから 256 バイトのみを読み取ります。

于 2014-12-16T12:52:57.410 に答える