前端加密工具crypto-js

2,149 阅读1分钟

总有些时候我们前端需要对数据做加密,因为 安全 (前端的安全基本都是纸老虎) 42a41525c612c75f8e61b0f0912a6e54 (2).jpeg,但是我们又不得不去做这么一步。那么有什么好推荐的加密工具么,答案是,有!

crypto-js

crypto-js是个很流行的js加密算法库,可以前端js中使用,也可以在后端的nodejs开发中使有,目前crypto-js已支持的算法有:MD5,SHA-1,SHA-256,AES,Rabbit,MARC4,HMAC,HMAC-MD5,HMAC-SHA1,HMAC-SHA256,PBKDF2等。

引用
npm install crypto-js
封装方法
const CryptoJS = require('crypto-js'); // 引用
const key = CryptoJS.enc.Utf8.parse('你的密钥,要换成16位字符串'); // 十六位十六进制数作为密钥
const iv = CryptoJS.enc.Utf8.parse('你的密钥偏移量,要换成16位字符串'); // 十六位十六进制数作为密钥偏移量

// 解密方法
const Decrypt = function (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();
};

// 加密方法
const Encrypt = function (word) {
  let srcs = CryptoJS.enc.Utf8.parse(word);
  let encrypted = CryptoJS.AES.encrypt(srcs, key, {
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  });
  return encrypted.ciphertext.toString().toUpperCase();
};

export {
  Decrypt,
  Encrypt
};

使用
import {
  Decrypt
} from '@/utils/crypto';

let encrypt_result = Encrypt('需要加密的串');
let decrpt_result = Decrypt('需要解密的串');
更多使用

www.npmjs.com/package/cry…