一、Base64—数字、字母的加密解密
1.Base64概念
- Base64,就是选出64个字符作为一个基本字符集(A-Z,a-z,0-9,+,/,再加上作为垫字的"=",实际是65个字符),其它所有符号都转换成这个字符集中的字符。
2.Base64的编码规则:
- 第一步,将每三个字节作为一组,一共是24个二进制位。
- 第二步,将这24个二进制位分为四组,每个组有6个二进制位。
- 第三步,在每组前面加两个00,扩展成32个二进制位,即四个字节。
- 第四步,得到扩展后的每个字节的对应符号,这就是Base64的编码值。
3. Base64解码规则:
- 第一步,将每4个字符为一组,查找上表,找到每个字符对应的ASCII值
- 第二步,将4个ASCII值写成二进制形式,并将每个二进制的前2个00去掉
- 第三步,将剩下的24位二进制位分成3份,即3个字节
- 第四步,查找ASCII值表(下表),找到每个字节对应的字符。
4.Base64常见用法
- Base64.btoa()----------加密
- Base64.atob()----------解密
- Base64.encode()------加密
- Base64.decode()------解密
<script src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>
var num = Base64.btoa("nan chu 123");
console.log(num);
console.log(Base64.atob(num));
var num1 = Base64.encode("nan chu 64");
console.log(num1);
console.log(Base64.decode(num));
二、escape()加密----汉字的解密
var s = escape("删除");
console.log(s);
三、unescape()解密----汉字的加密解密
console.log(unescape(s));
四、UIR加密(针对路径)-----汉字的加密解密
(1)encodeURIComponent()----加密
var t = encodeURIComponent("删除");
console.log(t);
(2)decodeURIComponent()----解密
console.log(decodeURIComponent(t));
五、md5加密—只能加密不能解密
<script src="js/md5.js"></script>
<script>
console.log(b64_md5('abc'));
console.log(hex_md5('abc'));
console.log(str_md5('abc'));
</script>
六、AES/DES加密解密—得使用密钥
<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script>
<script>
console.log(CryptoJS.MD5("你好").toString());
var key="12345";
var msg="我abc";
console.log(CryptoJS.AES.encrypt(msg, key).toString());
console.log(CryptoJS.AES.decrypt("U2FsdGVkX1+j873Bzg4w7onvkXM48Cpe9sq25ScfsSA=",
key).toString(CryptoJS.enc.Utf8));
</script>