Java 运用 Bouncy Castle 进行 AES128 加密解密(CBC 模式 PKCS7 填充 )

本文介绍了如何使用Bouncy Castle库在Java中实现AES128加密解密,以匹配iOS端SecKeyWrapper的CBC模式和PKCS7填充。通过下载并替换JCE政策文件,以及引入bcprov包,成功解决Java端解密iOS加密数据的问题,并展示了加密和解密的示例。
摘要由CSDN通过智能技术生成

参考了 http://my.oschina.net/nicsun/blog/95632 的博文,在此表示感谢


一个有加密内容的 iOS 项目有了跨平台的需求,需要用 Java 实现与  iOS  端通用的AES128 的加密解密。AES 的 Java 实现网上有很多例子,问题在于iOS端已经使用了 APPLE 官方例子中的 SecKeyWrapper 类进行加密解密,所以难点变成了如何用 Java 解开 iOS 端用特定方法加密的数据,并且 Java 端生成的加密数据要能够在 iOS 端用 SecKeyWrapper 解开。


如果直接用自带的解密方法,出现了 Padding 错误。查了一下资料发现 SecKeyWrapper 使用的是 AES128 CBC模式下的 PKCS7 填充方法,而 Java 并不支持这种填充方法,所以需要引入 Bouncy Castle 对加解密方法进行扩充。


Bouncy Castle 是一种用于Java平台的开放源码的轻量级密码术包。它支持大量的密码术算法。本文利用它在 Java 端实现 AES 加解密。

这是它的官网 : http://www.bouncycastle.org/ 

首页上写着:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值