1

我正在编写需要加密和解密文件的应用程序。我的问题是解密比加密慢大约 5 倍。我已经剥离了所有文件读/写操作,并且只对加密进程进行了基准测试。结果非常令人惊讶:

加密 1.5 MB 字节数组encryptionCipher.doFinal()(这是 javax.crypto.Cipher 的实例)

~1600 ms

解密 1.5 MB 字节数组decryptionCipher.doFinal()(这是 javax.crypto.Cipher 的实例)

~5800 ms

我很惊讶,因为我知道AES解密和加密是对称过程,加密和解密速度应该没有区别。

我正在使用AES/CBC/PKCS7Padding带有 256 位密钥的密码。

什么会导致这种情况?

4

1 回答 1

0

在android中加解密可能需要时间(因为代码转换和可用资源少)。JNI 是此类任务的首选。使用 openssl 例程加密和解密,并通过 JNI 接口在您的 java 代码中调用它们。

于 2012-05-02T05:03:13.283 回答