JNI AES 文件加密解密实现
AES (高级加密标准)
前面的文字已经简单介绍了 AES ,这里就不在介绍了。
JNI 层实现 AES
方法 1
你可以调用 Java 端接口实现。
这种方式这里就不介绍了。
方法 2
在 JNI 层加入 AES 的 C/C++ 算法,对外提供一个输入输出接口即可。
这里采用 tiny-AES-c
实现。tiny-AES-c
但是还有其它问题,tiny-AES-c
只支持基本数据大小的倍数的数据(AES 128 则是 128bit 即 16Byte 的整数倍)。
也就是 tiny-AES-c
没有 padding 功能。
在调用 tiny-AES-c
提供的 AES 加密前需要自行增加 padding 数据;而 AES 解密后需要自己移除 padding 数据。
tiny-AES-c
先介绍 tiny-AES-c
的调用方式。
前提:
字段 | 参数 |
---|