一.Window btoa() 方法
btoa() 方法用于创建一个 base-64 编码的字符串。
该方法使用 "A-Z", "a-z", "0-9", "+", "/" 和 "="
字符来编码字符串。
base-64 解码使用方法是 atob()
window.btoa('echo');
// ZWNobw==
window.atob('ZWNobw==')
// echo
- 注意 参数(str): 必需,要编码的字符串。
二 MD5加密(不可逆)
MD5加密有好多种,对登录常用的事32位加密方式,用户信息,密码等私密信息进行加密
import MD5 from 'crypto-js/md5';
export function Auth() {
const ts = new Date().getTime();
const { uid, token } = getLocalStorage();
const sign = MD5(uid + ts + token).toString();
const Auth = { ts, uid, sign };
return Auth;
// sign: 4211e87e94c3438a08a65d2c1cab4d01
// ts: 1579074594954
// uid: admin
}
let user = 'echo'
let MdUser = MD5(user).toString();
// cbb11ed87dc8a95d81400c7f33c7c171
三 sha1加密(不可逆)
<script src="https://cdn.bootcss.com/js-sha1/0.6.0/sha1.js"></script>
let sha1_1 = sha1("echo");
console.log(sha1_1);
// b2d21e771d9f86865c5eff193663574dd1796c8f
四、编码和解码字符串
使用JS函数的escape()和unescape(),分别是编码和解码字符串
var escape1 =escape("我的名字是:echo");//编码
console.log(escape1); // %u6211%u7684%u540D%u5B57%u662F%uFF1Aecho
var unescape1 = unescape(escape1); //解码
console.log(unescape1); // 我的名字是:echo
五、AES/DES加密解密
下载crypto-js.js 引入使用
var aseKey = "12345678" //秘钥必须为:8/16/32位
var message = "80018000142";
//加密
var encrypt = CryptoJS.AES.encrypt(message, CryptoJS.enc.Utf8.parse(aseKey), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString();
console.log(encrypt); //VKrZlqykem73x8/T2oCfCQ==
//解密
var decrypt = CryptoJS.AES.decrypt(encrypt, CryptoJS.enc.Utf8.parse(aseKey), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString(CryptoJS.enc.Utf8);
console.log(decrypt); //80018000142
- 加密的时候必须转成字符串 使用toString。 解密的时候 必须使用utf8的格式