【问题标题】:nodejs 3des decrypt didn't get expected resultnodejs 3des解密没有得到预期的结果
【发布时间】:2017-11-17 14:41:02
【问题描述】:

我的 nodejs 3DES 解密没有得到预期的结果。我的代码有什么问题吗?

let cryptojs = require('crypto-js')
var key = '551408C3D129EC64DA505CB48CD61D57551408C3D129EC64';
var ciphertext = 'C5F21F0F82038833851BA3092D613F085A60DB1E189E10F6';
var iv = cryptojs.enc.Hex.parse("0".repeat(16));

key = cryptojs.enc.Hex.parse(key);
var result = cryptojs.TripleDES.decrypt(ciphertext, key, {iv: iv, mode: cryptojs.mode.CBC, padding: cryptojs.pad.NoPadding});
console.log ('decrypted ' + result.toString(cryptojs.enc.Hex));

结果是'90d49e10​​85d5251f87dbcd6292570ba30e8a6e0f84d8331c97a579ef0ba6ac867342f2f6'

但是预期的结果应该是 '466F0198321458864627662057083A457601185220050000'

【问题讨论】:

  • 加密还是解密?请澄清并编辑您的问题。
  • 抱歉复制和粘贴时的类型,我刚刚更新了问题。

标签: node.js encryption 3des


【解决方案1】:

你说你试图解密数据,但你加密了它:

var result = cryptojs.TripleDES.encrypt(ciphertext, key, {iv: iv, mode: cryptojs.mode.CBC, padding: cryptojs.pad.NoPadding});

【讨论】:

  • 很抱歉在复制和粘贴过程中出现拼写错误,即使它更改为解密,我仍然没有得到预期
  • 您可能忘记在密文上调用 Hex.parse。
  • 测试密文 = cryptojs.enc.Hex.parse(ciphertext);解密前,结果为空:“WordArray.init {words: Array(0), sigBytes: 0}”
  • 经过更多测试,需要Hex.parse,但需要使用format.Hex.parse而不是enc.Hex.parse -_-; .......
【解决方案2】:

经过更多测试发现需要在解密之前再添加一行代码:

ciphertext = cryptojs.format.Hex.parse(ciphertext);

完整代码如下:

let cryptojs = require('crypto-js')
var key = '551408C3D129EC64DA505CB48CD61D57551408C3D129EC64';
var ciphertext = 'C5F21F0F82038833851BA3092D613F085A60DB1E189E10F6';
var iv = cryptojs.enc.Hex.parse("0".repeat(16));

key = cryptojs.enc.Hex.parse(key);
ciphertext = cryptojs.format.Hex.parse(ciphertext);
var result = cryptojs.TripleDES.decrypt(ciphertext, key, {iv: iv, mode: cryptojs.mode.CBC, padding: cryptojs.pad.NoPadding});
console.log ('decrypted ' + result.toString(cryptojs.enc.Hex));

结果是

decrypted 466f0198321458864627662057083a457601185220050000

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-24
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多