【发布时间】:2020-03-21 13:34:18
【问题描述】:
我在这里搜索并用谷歌搜索过,但找不到我要找的东西。看起来这应该很容易,但很少有类似的线程没有得到答复。我希望我能得到答案。所以我有这个小提琴JS Fiddle,它在 CryptoJS 中加密和解密,到目前为止没问题。代码在这里:
var options = { mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, keySize: 256 };
var encrypted = CryptoJS.AES.encrypt('encrypt me', 'A37u172sSFS9O9JNHs82u38djdncnvyz', options);
var decrypted = CryptoJS.AES.decrypt(encrypted, "A37u172sSFS9O9JNHs82u38djdncnvyz", options);
var plaintext = decrypted.toString(CryptoJS.enc.Utf8);
但是当我获取加密字符串并尝试解密时,我无法解密。看到这个节点小提琴:Node Fiddle,代码是:
const crypto = require('crypto');
const mykey = crypto.createDecipher('aes-256-cbc', 'A37u172sSFS9O9JNHs82u38djdncnvyz');
//A37u172sSFS9O9JNHs82u38djdncnvyz9
const mystr = mykey.update('U2FsdGVkX18mFQOkolgDJ0cjOfYqiqKCUGdNoA2nESI=', 'base64', 'utf8');
理想情况下,mystr 字符串应该向我返回文本“加密我”,但它会显示一些乱码。我知道它应该很容易找到,但我无法理解我做错了什么。在加密方面,我完全是菜鸟。这里有什么帮助吗?
【问题讨论】:
-
你使用的是什么版本的节点?
-
我使用的是 v8.12.0
-
你能解决这个问题吗?
-
见鬼。但是我所做的是我使用crypto-js构建了一个es5模块并在两端使用它。如果有人有解决方案,我会很高兴,因为我对加密很不好
标签: node.js encryption cryptojs node-crypto