nodejs和java加密通信问题

现在是有一个需求,是在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)
阅读 3.9k
1 个回答

我查了一下没有des-128-cbc这个算法,只有aes-128-cbc
openssl list-cipher-algorithms 命令查看加密算法列表

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题