1

ファイルを暗号化および復号化する必要があるアプリを作成しています。私の問題は、復号化が暗号化よりも約 5 倍遅いことです。すべてのファイルの読み取り/書き込み操作を取り除き、暗号化プロセスのみをベンチマークしました。結果は非常に驚くべきものでした:

encryptionCipher.doFinal()(javax.crypto.Cipher のインスタンス) で1.5 MB バイト配列を暗号化する

~1600 ms

decryptionCipher.doFinal()(javax.crypto.Cipher のインスタンス) を使用して 1.5 MB バイト配列を復号化する

~5800 ms

私が知っているように、AES 復号化と暗号化は対称的なプロセスであり、暗号化と復号化の速度に違いはないはずなので、私は非常に驚いています。

AES/CBC/PKCS7Padding256 ビット キーの暗号を使用しています。

何が原因でしょうか?

4

1 に答える 1

0

Android では、暗号化と復号化に時間がかかる場合があります (コード変換と利用可能なリソースが少ないため)。このようなタスクには JNI が適しています。openssl ルーチンを使用して暗号化と復号化を行い、JNI インターフェイスを介して Java コードでそれらを呼び出します。

于 2012-05-02T05:03:13.283 に答える