异常

org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$InvalidKeyOrParametersException: Key length not 128/192/256 bits.

at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineInit(Unknown Source)

at javax.crypto.Cipher.implInit(Cipher.java:806)

at javax.crypto.Cipher.chooseProvider(Cipher.java:864)

at javax.crypto.Cipher.init(Cipher.java:1396)

at javax.crypto.Cipher.init(Cipher.java:1327)

at com.cust.wechat.utils.AesCbcUtil.decrypt(AesCbcUtil.java:62)

at com.cust.wechat.utils.AesCbcUtil.main(AesCbcUtil.java:117)

代码

public static void main(String[] args) throws Exception

{

//这个会报异常

String sessionKey = "o-kJW4_3AVXz5s96JgUkcBE4M3LA";

String encryptedData = "JDIIqASgtHXbNkolc7j0cV4f3bakhZMj/Z2gbxJtCCFmzJmbZeUXKujEb4DEAhfrHH90qhVMpKTB+SAAjdicjT7waWtgexWfipIgZS2FREJvMmdNsp/ahhtn68joAhZze458X0YFQ4i01/Y5UFr1XktllN7C+LSb5zVqOzPGG20zER5TtB1XaZig1PmOF4CqO3A7ZV7nUnr0itIDhSXPZhQqJCNwd93EKyi7lVnCBSOF6Fqb3Wp6na3KrKP1lON1UV5g8DDZRJFOpsvVMMP6KNdy8Sf5DTn9PE7+XcZ2yVwiIPBihsA0iPMlv3jhOnzhuEtz7M4+02f0V1MNS31kZuvQb0NnwGGwRb8JrlTF1c70InLMUvgRG66gFE7otx7v/aHvrv02MitbjgL5Lg76O8Og6Tm1/gFkQaPoz4F1AQ+SNTnjgRYSFHwT2AQXusG2hJ678r8+kcUTR1tPRSrc+zBxNoEA3SPNgDZEFE557FI=";

String iv = "dqNtltSAZGV9Q+O9Hh8mLg==";

//这个不会报异常

String sessionKey1 = "tiihtNczf5v6AKRyjwEUhQ==";

String encryptedData1 = "CiyLU1Aw2KjvrjMdj8YKliAjtP4gsMZMQmRzooG2xrDcvSnxIMXFufNstNGTyaGS9uT5geRa0W4oTOb1WT7fJlAC+oNPdbB+3hVbJSRgv+4lGOETKUQz6OYStslQ142dNCuabNPGBzlooOmB231qMM85d2/fV6ChevvXvQP8Hkue1poOFtnEtpyxVLW1zAo6/1Xx1COxFvrc2d7UL/lmHInNlxuacJXwu0fjpXfz/YqYzBIBzD6WUfTIF9GRHpOn/Hz7saL8xz+W//FRAUid1OksQaQx4CMs8LOddcQhULW4ucetDf96JcR3g0gfRK4PC7E/r7Z6xNrXd2UIeorGj5Ef7b1pJAYB6Y5anaHqZ9J6nKEBvB4DnNLIVWSgARns/8wR2SiRS7MNACwTyrGvt9ts8p12PKFdlqYTopNHR1Vf7XjfhQlVsAJdNiKdYmYVoKlaRv85IfVunYzO0IKXsyl7JCUjCpoG20f0a04COwfneQAGGwd5oa+T8yO5hzuyDb/XcxxmK01EpqOyuxINew==";

String iv1 = "r7BXXKkLb8qrSNn05n0qiA==";

System.out.println(AesCbcUtil.decrypt(encryptedData1, sessionKey1, iv1, "UTF-8"));

}

public static String decrypt(String data, String key, String iv, String encodingFormat) throws Exception

{

//initialize();

//被加密的数据

byte[] dataByte = Base64.decodeBase64(data);

//加密秘钥

byte[] keyByte = Base64.decodeBase64(key);

//偏移量

byte[] ivByte = Base64.decodeBase64(iv);

try

{

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");

SecretKeySpec spec = new SecretKeySpec(keyByte, "AES");

//生成iv

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, encodingFormat);

return result;

}

return null;

}

catch (NoSuchAlgorithmException e)

{

e.printStackTrace();

}

catch (NoSuchPaddingException e)

{

e.printStackTrace();

}

catch (InvalidParameterSpecException e)

{

e.printStackTrace();

}

catch (InvalidKeyException e)

{

e.printStackTrace();

}

catch (InvalidAlgorithmParameterException e)

{

e.printStackTrace();

}

catch (IllegalBlockSizeException e)

{

e.printStackTrace();

}

catch (BadPaddingException e)

{

e.printStackTrace();

}

catch (UnsupportedEncodingException e)

{

e.printStackTrace();

}

return null;

}

Java里面jvr_微信小程序java解密报异常Key length not 128/192/256 bits相关推荐

  1. 微信小程序 WXBizDataCrypt 解密 报错

    在使用微信官方WXBizDataCrypt.js解密encryptedData获取敏感数据的时候,偶尔会报错. DeprecationWarning: Buffer() is deprecated d ...

  2. java实现微信小程序加密数据解密的代码怎么写

    前言 微信小程序好坑啊!java明明是用户量最大的编程语言,可是都2021年了,他的小程序文档到现在都没有更新上java实现加密数据解密算法.... 微信小程序官方文档如下: 服务端获取开放数据 | ...

  3. ssm框架中前台html如何接受后台的数据_计算机毕业设计中实现java后台的微信小程序...

    点击上方"蓝字",关注我们. 毕业设计做微信小程序+java后台.从对微信小程序一无所知到完成毕设,碰到许多问题,在跟大家分享一下自己的经历和一个小程序怎么从零开始.希望小程序初学 ...

  4. 微信读书登陆界面java_(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好...

    转载地址:(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 一.环境搭建 相关环境软件:JDK1 ...

  5. python微信小程序 java电子书阅读器系统uniapp

    功能介绍 将系统权限按管理员和用户这两类涉及用户划分. (a) 管理员:管理员使用本系统涉到的功能主要有:个人中心.用户管理.类型管理.书城管理.管理员管理.系统管理等功能. (b)用户进入系统前台可 ...

  6. (微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好

    转载地址:(微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 作者:Happy王子乐 个人网站(整理 ...

  7. java后台接收微信小程序发送的post请求参数

    java后台接收微信小程序发送的post请求参数 // 微信端:data数据要加上JSON转换JSON.stringify() wx.request({url: 'http://127.0.0.1:8 ...

  8. 微信小程序-JAVA实现微信支付功能(微信支付2.0)

    微信小程序-JAVA实现微信支付功能(微信支付2.0) 一.前言 本博客主要介绍JAVA后台与微信小程序(UNI-APP或者原生微信小程序)的微信支付的实现,如果是APP或者H5的开发暂时不支持,具体 ...

  9. 微信小程序 java疫情个人防疫打卡监控系统python

    将系统权限按管理员和用户这两类涉及用户划分. (a) 管理员:管理员使用本系统涉到的功能主要有:个人中心.用户管理.个人打卡管理.防疫打卡管理.消息提醒管理.系统管理等功能 (b)用户进入系统前台可以 ...

最新文章

  1. JSP关于Frameset的简单用法
  2. 在同一网段内运行同一命令_怎么又是你?男子一天内2次酒驾被查,没想到碰上了同一个交警...
  3. Oracle openv目录,2015年ORACLE数据库日常维护手册82281192.doc
  4. PAT乙类1009 说反话 (20 分)
  5. 各类木材强度_凯狄解析各类抽芯铆钉的工作原理
  6. SpringBoot—数据库初始化脚本配置
  7. 构建嵌入式linux系统_用于构建嵌入式Linux系统的4种工具
  8. python 网络编程_python网络编程示例(客户端与服务端)
  9. JQuery学习记录——jQuery对象和DOM对象的转换
  10. [转载] javascript入门_WebAssembly入门-仅使用14行JavaScript
  11. 《OpenGL ES 3.x游戏开发(下卷)》一2.8 小结
  12. linux ruby作用域,Ruby 的作用域和作用域门
  13. mysql数据库root密码在哪个文件中_mysql数据库的root密码放在什么位置?
  14. C++读xml 文件信息
  15. 百度ai开放平台体验
  16. 腾云忆想技术干货|TSF微服务治理实战系列(三)——服务限流
  17. ssms远程服务器地址,SSMS如何远程到SQL SERVER?
  18. 体会现实生活的两个月(上)
  19. input的button类型,点击页面跳转
  20. C++ 判断路径是否存在,不存在则创建(包含多级创建)

热门文章

  1. 短语a slap on the wrist
  2. 841N V8 300R V3 AR9341 UBOOT OP固件 ART赏先版及TTL接线图
  3. 【级数求和】C语言解析
  4. 使用 Lambda 表达式的正确姿势,写得太好了叭
  5. 【合泰HT3252352串口通信实验注意点】
  6. Android 水波效果原理与实现
  7. 数字信号与图像处理实验一:信号处理基础
  8. 基于SHCAN智能仪表的ECU检测系统ETest的开发
  9. NMS网络管理产品战略规划
  10. Python输出斐波拉契数列