JNI AES 文件加密解密实现

该博客介绍了如何在JNI层使用AES加密算法,重点讨论了tiny-AES-c库的应用和padding的处理。作者提到了在JNI层实现AES加密解密的两种方法,并指出tiny-AES-c库对数据长度的要求,需要自行处理padding。最后,提供了个人实现的padding策略,以解决数据污染问题。
摘要由CSDN通过智能技术生成

JNI AES 文件加密解密实现

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 的调用方式。

前提:

字段 参数
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值