使用java8 java7  java6 解密微信小程序encryptedData可以回遇到一些错误

1.java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/CBC/PKCS7Padding

2.Java.security.NoSuchProviderException: no such provider: BC

解决方法:

1.下载bcprov-jdk15on:jar,下再地址:http://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on/1.58

2.解密代码

static{
Security.addProvider(new BouncyCastleProvider());
}

// 被加密的数据
byte[] dataByte = Base64.decodeBase64(encryptedData);
// 加密秘钥
byte[] keyByte = Base64.decodeBase64(sessionkey);
// 偏移量
byte[] ivByte = Base64.decodeBase64(iv);
try {
// Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding","BC");

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding","BC");
SecretKeySpec spec = new SecretKeySpec(keyByte, "AES");
AlgorithmParameters parameters = AlgorithmParameters.getInstance("AES");
parameters.init(new IvParameterSpec(ivByte));
cipher.init(Cipher.DECRYPT_MODE, spec, parameters);// 初始化
byte[] resultByte = cipher.doFinal(dataByte);
if (null != resultByte && resultByte.length > 0) {
String result = new String(resultByte, "UTF-8");

}

result 就是解密的数据

分享一个朋友的人工智能教程。零基础!通俗易懂!风趣幽默!大家可以看看是否对自己有帮助,点击查看教程。

如果对你有帮助,请不吝打赏

最新文章

  1. java-并发-高级并发对象1
  2. PXC(Percona XtraDB Cluster)集群的安装与配置
  3. java Socket编程-基于TCP
  4. CDC和HDC的区别与转换
  5. [06]APUE:系统数据文件和信息
  6. CSS 布局入门
  7. POJ题目分类
  8. crm 2011 plugin setparent setbusiness 用户更改经理 更改办事处
  9. form表单中的 action=./?> 是什么意思
  10. servlet与CGI的区别
  11. 基于Flink的windows--简介
  12. 基于HTML5 Canvas实现用户交互
  13. python+selenium自动化软件测试(第14章):基础实战(1)
  14. Elasticsearch的基友Logstash
  15. maven(二)创建工程
  16. PR 审批界面增加显示项方法
  17. app后端设计(8)-- 数据库分表
  18. 花了2小时写bug
  19. Session每次访问都回新建对象问题的处理
  20. [转] Mongoose 参考手册

热门文章

  1. mp4流化
  2. 使用BurpSuite和Hydra爆破相关的服务(9.25 第十一天)
  3. P 1028 人口普查
  4. sql 左联 右联 内联的区别
  5. Java虚拟机之内存模型
  6. Airflow 使用 Celery 时,如何添加 Celery 配置
  7. 吴裕雄--天生自然 JAVASCRIPT开发学习
  8. Codeforces 1299A/1300C - Anu Has a Function
  9. Arduino IIC 主从设备连接通信
  10. js正则 -180 到180 小数点后无限位