DES3加解密问题

本文探讨了前端使用JS进行DES3加密后,后台JAVA解密时出现的Inputlengthnotmultipleof8bytes错误。通过更换密钥发现密文尾部等号数量会影响JAVA解密成功与否。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端JS des3 加密后 后台JAVA 无法解密的问题 报错:Input length not multiple of 8 bytes
填充模式 向量 加解密模式都检查了 而且更改后做了测试,都还是一样的报错。

最终怀疑是密钥的问题,然后开始测试

var str = "123567865423567863324";
document.write("原始字符串:</br>"+str);
var key = "0123456789abcd0123456789";
var des3en = DES3.encrypt(key,str);
document.write("</br>des3加密:</br>"+des3en);

页面输出:
des3加密:
byTSs+5msFKCJSLRHZ2s56BdeHWK6AEoaiKgtUMPJmq5gmRpocUMQWdI6aljcMWyI0tT4M2vyFft2fZwzl4BRx9WLqWNbII/KTGzTIJCXO8VMhVzctb3g62mjK6SJaKf8fHHfhGxD3aFZ450ZmvZvxDNrxhwjOj12JzMGJ1Wsg==

是一两个 ==结尾的 而后台java解密的时候就会少8个字节导致报错:Input length not multiple of 8 bytes

而同样的代码:

var str = "123567865423567863324";
document.write("原始字符串:</br>"+str);
var key = "0lianaemp9abcd0lianaemp1";
var des3en = DES3.encrypt(key,str);
document.write("</br>des3加密:</br>"+des3en);

更改了一下密钥 加密后:
des3加密:
3CLNgbExAPfsbDJM6Vv/ymEVwhEQ9HUCVxmM8HXxGIvXKi5vX7wUgs3SALBUP2CfeXqB7APTdiCB3GFsbZIkIcxVACNWOlk6qXYjeBTc531eBwjiPYCPRkTPvwwBh3PMkElKJA7eSzFW7xGuPkWe8ls4xnlQCJxixcKwg3Q8TdA=
这里的密文最后只有一个“=” 后台就可以解密了

但是 一直没有找到为什么

主要代码引用的

https://www.oschina.net/code/snippet_123236_45994 文章中的JS和html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值