前端加密解密用的比较多的一个库crypto-js,像AES,SHA256,base64,md5都比较好用。
1、base64加密解密
从IE10+开始,浏览器就原生提供Base64编码解码方法
//Base64编码
let data = window.btoa(stringToEncode);
//Base64解码
let data = window.atob(encodedData);
如果是汉字,就需要先对其进行编码,
下面的编码函数最开始 是因为URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号,所以汉字等其他国家字符都需要先编码。
//汉字base64编码
let data = window.btoa(window.encodeURIComponent('啦啦啦'));
//汉字解码
let data = window.decodeURIComponent(window.atob(JUU1JTk1JUE2JUU1JTk1JUE2JUU1JTk1JUE2));
2、AES 算法加密
理解AES加密解密的使用方法
crypto-js
下面代码来源
import CryptoJS from 'crypto-js' //引用AES源码js
const key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF"); //十六位十六进制数作为密钥
const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412'); //十六位十六进制数作为密钥偏移量
//解密方法
function Decrypt(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 Encrypt(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 default {
Decrypt ,
Encrypt
}