【发布时间】:2020-07-21 08:51:00
【问题描述】:
我需要使用带 CBC 模式的三重 DES 编码来解密数据。上面的这段代码是最后一次尝试。当解密器被创建时,我得到了休闲错误:
Error: Invalid key length
at Decipheriv.createCipherBase (internal/crypto/cipher.js:103:19)
at Decipheriv.createCipherWithIV (internal/crypto/cipher.js:121:20)
at new Decipheriv (internal/crypto/cipher.js:262:22)
at Object.createDecipheriv (crypto.js:127:10)
at Object.decrypt3DES (/home/didimo/projetos/node_anna_server/src/utils/exeCrypto.ts:132:25)
at /home/didimo/projetos/node_anna_server/src/controllers/annaController.ts:67:19
at step (/home/didimo/projetos/node_anna_server/src/controller`enter code here`s/annaController.ts:33:23)
at Object.next (/home/didimo/projetos/node_anna_server/src/controllers/annaController.ts:14:53)
at /home/didimo/projetos/node_anna_server/src/controllers/annaController.ts:8:71
at new Promise (<anonymous>)
这是我的代码:
var data = "XAWHNurb7eQRxbA/vuC09Q==";
var iv = "O6VMaT2M9Pk=";
var key = "UqOKIBu82BMiz4hEh+TqJpobsO9DonWo";
var crypto = require("crypto");
var alg = "des-ede-cbc";
var keyBuffer64 = new Buffer(key, "base64");
var keyBufferUtf8 = new Buffer(keyBuffer64.toString("utf8"), "utf8");
var ivBuffer64 = new Buffer(iv, "base64");
var ivBufferUtf8 = new Buffer(ivBuffer64.toString("utf8"), "utf8");
var encryptedData = new Buffer(data, "base64");
var decipher = crypto.createDecipheriv(alg, keyBufferUtf8, ivBufferUtf8);
var decoded = decipher.update(encryptedData, "base64", "utf8");
decoded += decipher.final("utf8");
return decoded;
【问题讨论】:
标签: node.js cryptojs 3des cbc-mode