FastAES是基于Android平台的AES加解密实现。
其加解密速度比Android SDK提供的实现要快一个数量级。
加解密核心部分来源于:OPENSSL
https://github.com/openssl/openssl/blob/master/crypto/aes/aes_core.c
OPENSSL提供了几种AES的实现,本项目取其中的查表的实现,并封装了AES/CBC/PKCS7Padding模式。
和Android SDK的AES实现对比,要快一个数量级。
同时测试了一下KeyStore提供的AES加解密,KeyStore的运算慢的离谱。
下面是测试情况。
测试数据:1000个长度在100字节以内的随机数组。
测试设备:HUAWEI P30 Pro。
测试结果:
耗时(ms) | |
---|---|
FastAES | 1 |
SDK AES | 24 |
KeyStore AES | 20036 |
额外提一下,如果要使用KeyStore,建议选用其HMAC算法(Android 6.0以上可用)加密一段固定数组,所得结果作为AES的key。
再用FastAES来加解密。
dependencies {
implementation 'io.github.billywei01:fastaes:1.1.5'
}
byte[] cipher = FastAES.encrypt(data, key, iv);
byte[] plain = FastAES.decrypt(cipher, key, iv);
博客: https://juejin.cn/spost/7263784662698754103
用例: FastKV-AESCipher
更多加密的实现: EasyCipher
See the LICENSE file for license rights and limitations.