【问题标题】:NodeJS Crypto encryption to front end javascript decryptionNodeJS Crypto加密到前端javascript解密
【发布时间】:2013-02-09 21:07:00
【问题描述】:

我正在寻找AES256 CBC解密客户端,

在nodeJS中我使用这个函数来加密:

exports.encrypt = function(txt, cryptkey){
  var cipher = crypto.createCipher('aes-256-cbc',cryptkey);
  var crypted = cipher.update(txt,'utf8','hex');
  crypted += cipher.final('hex');

  console.log(crypted);
  return crypted;

};

但我似乎无法在任何客户端库(JSAES.js、SJCL.js、pidcrypt)中使用它

我的猜测是它与 base64/hex 编码解码有关,任何指针?

【问题讨论】:

    标签: javascript node.js encryption


    【解决方案1】:

    请查看CryptoJS 项目:

    这里是一个AES256 CBC加密/解密的例子:

    包括:

    <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
    <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/mode-cfb-min.js"></script>
    

    JS:

    var passPhrase = "Secret Phassphrase";
    
    var encrypted = CryptoJS.AES.encrypt("Message", passPhrase, { mode: CryptoJS.mode.CFB });
    var decrypted = CryptoJS.AES.decrypt(encrypted, passPhrase, { mode: CryptoJS.mode.CFB });
    
    console.log('encrypted', encrypted);
    console.log('decrypted', decrypted.toString(CryptoJS.enc.Utf8));
    

    jsFiddle观看演示

    【讨论】:

    • 我在服务器 nodeJS 上包含了“mode-cfb-min.js”,并且能够加密 cryptoJS 服务器端和客户端,谢谢!! :)
    • 在客户端存储密码短语是否安全?此外,它是否与我们在 encrypt 函数的参数 cryptkey 中使用的密码相同?
    • 1.) 不,将其存储在客户端是不安全的。以上代码仅用于演示目的。 2.) 检查文档github.com/brix/crypto-js :)
    猜你喜欢
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    • 1970-01-01
    • 2017-08-06
    相关资源
    最近更新 更多