最简单的加密
函数escape()和unescape();
var str = '你好' var str1 = escape(str) console.log(str1); // %u4F60%u597D console.log(unescape(str1)); // 你好
使用MD5加密
// 首先要导入md5 <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.js"></script> // 使用 var v1= md5('{"name":"嘻嘻嘻嘻嘻嘻嘻嘻嘻","age":22}'); console.log(v1);//56b21847ed32d2d96cf74077b22342eb var v2= md5('{"name":"嘻嘻嘻嘻嘻嘻嘻嘻嘻"}'); console.log(v2);//80b36b8a15ece3158c4e30130d4d4453
MD5不可逆的原因是由于它是一种散列函数(也叫哈希函数,哈希函数又称散列函数,杂凑函数,他是一个单向密码体制,即从明文到密文的不可逆映射,只有加密过程没有解密过程,哈希函数可以将任意长度的输入经过变化后得到固定长度的输出,这个固定长度的输出称为原消息的散列或消息映射。 理想的哈希函数可以针对不同的输入得到不同的输出,如果存在两个不同的消息得到了相同的哈希值,那我们称这是一个碰撞),使用的是hash算法,在计算过程中原文的部分信息是丢失了的。一个MD5理论上是可以对应多个原文的,因为MD5是有限多个而原文是无限多个的。
由此可见,过程不可逆。网上搜到的MD5解密网站都是成千上万的MD5原文与MD5数据,放到了数据库里。所谓的解密就是从数据库里查询有没有原文。(可以自己生成一个复杂一些的MD5密文去解密网站试一下...是无法解密的)
通过MD5加密可以用来存密码到数据库中,又不会被破解。
btoa()加密和atob()解密方法
var str = {name: 'admin'}; var enc = window.btoa(str.name); console.log(enc); var dec = window.atob(enc); console.log(dec);
加密