用node解密失败,cipher参数求助
发布于 3 年前 作者 suntopo 3120 次浏览 来自 问答

java中用的加密方式"DES/CBC/PKCS5Padding" iv是这样的IvParameterSpec iv = new IvParameterSpec(new byte[8]); 我在node中使用 var decipher = crypto.createDecipheriv(‘des-cbc’, key, Buffer(8)); 一直解密失败 crypto.js:239 this._handle.initiv(cipher, toBuf(key), toBuf(iv)); ^ Error: Invalid key length

怀疑是iv的问题,但是是在不知道java中iv对应node中的该如何写。

2 回复

错误已经写了,key的长度不对 跟向量一样,des 对key的长度也是有要求的,长度为8byte = 64位,即一个加密块的长度(这里我不确定,因为DESede的key的长度是24位,反推des为8,你去文档确认一下)

@TakWolf 的确是这个问题。一开始没有关注,java方给来算法和16位长的密钥,当时就没有多想,直接把密钥带进去,一直报上面的错误。然后看了您的提示,然后差了下资料,des加密,密钥长度就两种分为24和8位的,但是还是不明白为什么给我一个16位的数字,可能是java中会自动截取,于是我取了前8位,test就成功了,加解密这块一直觉得太高端来,没怎么研究,好多基础知识不清楚。

回到顶部