现在是有一个需求,是在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. (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-cbcopenssl list-cipher-algorithms命令查看加密算法列表