首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
regex
case
match
email
header
filter
scala
plugins
window
jar
export
cPlusPlus
request
schema
golang
string
client
c语言
settings
controller
cmd
httpclient
tree
command
include
uri
php5
datetime
random
emoji
typescript
shell
text
bitmap
frameworks
cookie
netty
format
foreach
heap
process
timezone
fetch
heatmap
hashtable
vbscript
callback
grid
solr
audio
expression
dll
lua
integer
char
substring
cSharp
ip
python
buffer
less
loops
javascript
timestamp
httprequest
post
python2
copy
select
hashcode
merge
dagger
triggers
perl
blob
version
int
rsa
io
当前位置:
开发笔记
>
编程语言
> 正文
微信小程序java解密报异常Keylengthnot128/192/256bits
作者:楼_市早班车_954 | 来源:互联网 | 2023-06-14 19:25
异常12345678org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$InvalidKeyOrParametersExce
异常
1
2
3
4
5
6
7
8
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)
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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
key
bit
cas
ide
ci
io
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
request
小程序的授权和登陆
小程序的授权和登陆 ...
[详细]
蜡笔小新 2024-11-14 19:07:05
random
本地存储组件实现对IE低版本浏览器的兼容性支持
本地存储组件实现对IE低版本浏览器的兼容性支持 ...
[详细]
蜡笔小新 2024-11-11 22:42:37
random
iOS snow animation
CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ...
[详细]
蜡笔小新 2024-11-15 11:52:38
string
Java 编程错误:对象无法转换为 long 类型
本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ...
[详细]
蜡笔小新 2024-11-13 10:57:24
include
开机自启动的几种方式
0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ...
[详细]
蜡笔小新 2024-11-12 11:16:30
include
如何使用 `org.opencb.opencga.core.results.VariantQueryResult.getSource()` 方法及其代码示例详解
如何使用 `org.opencb.opencga.core.results.VariantQueryResult.getSource()` 方法及其代码示例详解 ...
[详细]
蜡笔小新 2024-11-11 18:48:02
string
Scala学习指南:从零开始掌握基础
本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ...
[详细]
蜡笔小新 2024-11-07 18:07:59
string
Java设计模式详解:解释器模式的应用与实现
本文详细介绍了Java设计模式中的解释器模式,包括其定义、应用场景、优缺点以及具体的实现示例。通过音乐解释器的例子,帮助读者更好地理解和应用这一模式。 ...
[详细]
蜡笔小新 2024-11-14 21:00:34
settings
Handsontable 教程:三分钟快速上手 Vue Excel 表格插件
本文将详细介绍如何在 Vue 项目中使用 Handsontable 插件,包括 npm 安装、基本配置和常用功能的实现。 ...
[详细]
蜡笔小新 2024-11-14 20:21:24
tree
Spring Boot 中使用 spring-boot-starter-quartz 实现定时任务
本文介绍了如何在 Spring Boot 项目中使用 spring-boot-starter-quartz 组件实现定时任务,并将 cron 表达式存储在数据库中,以便动态调整任务执行频率。 ...
[详细]
蜡笔小新 2024-11-14 18:55:09
include
普通树(每个节点可以有任意数量的子节点)级序遍历
普通树(每个节点可以有任意数量的子节点)级序遍历 ...
[详细]
蜡笔小新 2024-11-14 18:53:26
tree
使用Netzob逆向未知协议的技术指南
本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ...
[详细]
蜡笔小新 2024-11-14 18:24:15
client
Cookie学习小结
Cookie学习小结 ...
[详细]
蜡笔小新 2024-11-14 16:26:25
string
如何在文件中存储和读取字典对象
本文介绍了如何将包含复杂对象的字典保存到文件,并从文件中读取这些字典。 ...
[详细]
蜡笔小新 2024-11-14 15:20:48
string
求助:如何使用Pull方法解析
标签内容,悬赏50分求完美解决方案
在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ...
[详细]
蜡笔小新 2024-11-09 11:50:14
楼_市早班车_954
这个家伙很懒,什么也没留下!
Tags | 热门标签
regex
case
match
email
header
filter
scala
plugins
window
jar
export
cPlusPlus
request
schema
golang
string
client
c语言
settings
controller
cmd
httpclient
tree
command
include
uri
php5
datetime
random
emoji
RankList | 热门文章
1
php删除无限级目录与文件代码共享_PHP教程
2
使用带有列名称和值的字典对熊猫数据框进行一键编码
3
谁是AI界大坑,景观设计师是否比建筑师更不容易被AI所取代?
4
idea2020新建springboot项目
5
点击elementui表格中的图标,上方显示具体的文字描述
6
权限_MS17010远程溢出漏洞(CVE20170143)拿权限
7
java并发编程的艺术第一章
8
java get数组参数_javaee – 在Struts 2中作为get参数的数组
9
JS实行机制
10
Windows下用cpu模式跑通目标检测py-faster-rcnn 的demo.py
11
Flutter 日期转换
12
C#中Using里使用单例的问题
13
作文以记之 ~ 验证二叉搜索树
14
Python 用凝聚层次聚类进行数据分组
15
看了那么多的开源商城项目,最想推荐的还是这一个
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有