前端和小程序加密 crypto-js的使用

2019-05-19  本文已影响0人  低调的颜某人

安装crypto-js

npm install crypto --save

引入

小程序

通过官方方式构建包,具体方式见官方

在任何js文件中都可以引入npm包

var CryptoJS = require("crypto-js");

在utils目录下新建code.js

var CryptoJS = require("crypto-js");
const key = '9vApxLk5G3PAsJrM';
const iv = 'FnJL7EDzjqWjcaY9';
function decode(word) {
  let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
  let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
  let decrypt = CryptoJS.AES.decrypt(srcs, key, {
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  });
  let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
  return decryptedStr.toString();
}

function encode(data) { //加密

  var parseKey = CryptoJS.enc.Utf8.parse(key);
  var parseIV = CryptoJS.enc.Utf8.parse(iv);
  var encrypted = CryptoJS.AES.encrypt(data, parseKey, {
    iv: parseIV,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  });
  return encrypted.ciphertext.toString(); //返回的是hex格式的密文,encrypted.toString()返回base64格式
}
module.exports= {
  decode,
  encode
}

具体使用aes-128、aes-192或者aes-256,视key和iv的字节而定,
16字节使用128,24字节使用192,32字节使用256,默认使用256

在其他js文件引入即可
还有其他的算法,官方API文档
nodeJs加密使用
可以用在加密请求参数上,就无法在控制台查看到请求的字段

上一篇下一篇

猜你喜欢

热点阅读