DES对称加解密

从服务端取回来一串加密串:加密方式DES(PHP加密的)。

对称加解密,使用Hutool解密出现错误如下:

解密方法:

SymmetricCrypto des = new SymmetricCrypto(SymmetricAlgorithm.DES, key.getBytes());

byte\[\] encrypt = content.getBytes();

byte\[\] decrypt = des.decrypt(encrypt);

String decryptStr = des.decryptStr(decrypt);

错误信息1:

llegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher

解密方法:

/**

* 解密

* @param encryptedText 加密的密文

* @param secretKey 秘钥

* @return

* @throws Exception

*/

public static String decrypt(String encryptedText, String secretKey) throws Exception {

SecretKey key = generateKey(secretKey);

Cipher cipher = Cipher.getInstance(DES_KEY);

cipher.init(Cipher.DECRYPT_MODE, key);

byte\[\] encryptedBytes = Base64.getDecoder().decode(encryptedText);//进行Base64解码

//byte\[\] encryptedBytes = Hex.decodeHex(encryptedText);//进行十六进制解码

byte\[\] decryptedBytes = cipher.doFinal(encryptedBytes);

return new String(decryptedBytes, StandardCharsets.UTF_8);

}

错误信息2:Wrong key size

换了好几种解密方式都不能正确解密,但是此加密串在站长工具上又是可以正常解密的,折腾大半天,请教了同事,给出可解的实现:

byte\[\] ivKey=new byte8;
DES desa = new DES(Mode.CBC, Padding.PKCS5Padding,key.getBytes( "UTF-8"),ivKey);

String resulat = desa.decryptStr(content);

通过站长工具(DES在线加密解密工具 - MKLab在线工具)解密时确实设置了密钥、模式、编码,自己反复设置了这些参数仍然不好使,后来发现有个偏移向量的问题,这个偏移向量还不能乱写(正常情况下设置了偏移向量的话是需要把这个偏移向量保存下来的)~~~

具体为什么猜中是8个空的字节数组,人家说"经验",怪咱太年轻呗

相关推荐
名字还没想好☜5 分钟前
Java 用 LinkedHashMap 三行实现 LRU 缓存:accessOrder、removeEldestEntry 与线程安全
java·后端·安全·spring·缓存
谢亮_vipxieliang18 分钟前
ValidX vs Google Guava Preconditions:验证 vs 断言
java·spring boot·后端·spring cloud·hibernate·guava
吴声子夜歌21 分钟前
ApacheCommons——commons-configuration2(多数据源配置统一管理与热加载)
java·开发语言·算法·apache
星星落进兜里28 分钟前
Java虚拟机面试题-补充
java·开发语言
吴声子夜歌4 小时前
ApacheCommons——commons-pool2(高性能通用对象池框架)
java·开发语言·apache
xcl09259 小时前
幼儿托育系统开发实战:从需求分析到上线全流程指南
java·大数据·需求分析
吴声子夜歌9 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
小小猪的春天9 小时前
Java 手写第一个 MCP Server:Spring AI MCP 半小时跑通
java·人工智能·spring boot·ai编程
find1star9 小时前
LeetCode 141:环形链表
java·算法·leetcode·链表
今天AI了吗10 小时前
DeepSeek Harness 深度解析:从评测架构到实战落地
java·网络·数据库·人工智能·架构·java-ee