尝试在节点中重新创建3des-ECB

问题描述 投票:0回答:1
function crypt3() {
    var CryptoJS = require("crypto-js");

    var text = "Test";

    var options = {
          mode: CryptoJS.mode.ECB, 
        //  padding: CryptoJS.pad.Pkcs7,
        iv: CryptoJS.enc.Hex.parse("")
        
    };

    var key = "FRSF1P3b6fHiW/DXrK8ZJks5KAiyNpP0";
    var keyHex = CryptoJS.enc.Hex.parse(key);
    var textWordArray = CryptoJS.enc.Utf8.parse(text);
    //var keyHex = CryptoJS.enc.Hex.parse(key);
    var keyHex = CryptoJS.enc.Utf8.parse(key);

    var encrypted = CryptoJS.TripleDES.encrypt(textWordArray, keyHex, options);

    var base64String = encrypted.toString();

    console.log(base64ToHex("AHDJ/V+jo1s=")) //0070C9FD5FA3A35B
    console.log(base64ToHex(encrypted))

    console.log('encrypted val: ' + base64String);//yxLYGJ9O+sY=   CB12D8189F4EFAC6
}

function base64ToHex(str) {
    const raw = atob(str);
    let result = '';
    for (let i = 0; i < raw.length; i++) {
      const hex = raw.charCodeAt(i).toString(16);
      result += (hex.length === 2 ? hex : '0' + hex);
    }
    return result.toUpperCase();
  }

尝试在nodejs中重新创建https://www.devglan.com/online-tools/triple-des-encrypt-decrypt的功能,但无法获得类似的结果。我缺少什么...任何帮助将不胜感激。

预期:AHDJ/V+jo1s= 实际:yxLYGJ9O+sY=

javascript node.js cryptojs 3des
1个回答
0
投票
const keyHex = CryptoJS.enc.Utf8.parse(myKey);
const encrypted = CryptoJS.DES.encrypt(myText, keyHex, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7,
});
return encrypted.toString();
© www.soinside.com 2019 - 2024. All rights reserved.