前端js几种加密/解密方法

一.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的格式

   转载规则


《前端js几种加密/解密方法》 echo丶若梦 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
判定字符是否唯一 判定字符是否唯一
实现一个算法,确定一个字符串 s 的所有字符是否全都不同示例 1:输入: s = "leetcode" 输出: false 示例 2:输入: s = "abc" 输出: true 限制:0 <= len(s) <= 100如果
2020-07-24
下一篇 
网站优化 网站优化
1. 为什么 Javascript 要是单线程的 ?这是因为 Javascript 这门脚本语言诞生的使命所致!JavaScript 为处理页面中用户的交互,以及操作 DOM 树、CSS 样式树来给用户呈现一份动态而丰富的交互体验和服务器逻
2020-01-14
  目录