现在是有一个需求,是在node端向java端发起一个请求,java端接收这个请求,在请求的过程中要进行加密,在java端使用的是“DES/CBC/PKCS5Padding
”,在node端想通过“createDecipheriv
”来实现,但是怎么匹配都不行,下面是node端的代码,大家帮忙看看是哪里不对,辛苦各位了。
加密方法:
var crypto=require('crypto');
var encrypt = function (key, iv, data) {
var cipher = crypto.createCipheriv('des-128-cbc', key, iv);
var crypted = cipher.update(data, 'utf8', 'binary');
crypted += cipher.final('binary');
crypted = new Buffer(crypted, 'binary').toString('base64');
return crypted;
};
调用:
var key = '751f621ea5c8f930';
var iv = '2624750004598718';
var data = "Hello, nodejs. 演示加密和解密";
var crypted = encrypt(key, iv, data);
console.log("数据加密后:", crypted);
crypto.js:187
this._handle.initiv(cipher, toBuf(key), toBuf(iv));
^
Error: Unknown cipher
at Error (native)
at new Cipheriv (crypto.js:187:16)
at Object.Cipheriv (crypto.js:185:12)
at encrypt (d:\workspace\testConnect\node_modules\js\des.js:14:25)
at Object.<anonymous> (d:\workspace\testConnect\node_modules\js\des.js:42:15)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
我查了一下没有
des-128-cbc
这个算法,只有aes-128-cbc
openssl list-cipher-algorithms
命令查看加密算法列表