1.斯坦福大学的js加密库(简称SJCL)
关于1.是斯坦福大学计算机安全实验室创立的项目,旨在创建一个安全、快速、短小精悍、易使用、跨浏览器的js加密库。如果有更复杂的安全需求,可以查阅API,文档地址是(http://bitwiseshiftleft.github.com/sjcl/doc/),对应的demo页面是(http://bitwiseshiftleft.github.com/sjcl/demo/)。
比较容易上手,简单的用下面的代码就可以进行加密、解密数据。
sjcl.encrypt(“password”, “data”)//加密数据
sjcl.decrypt(“password”,“encrypted-data”) // 解密数据
2.crypto-js
crypto是node的内置模块,目的是提供通用的加密和哈希算法。nodejs用c/c+=实现这些算法后,通过crypto这个模块暴露位js接口,方便使用,提高运行速度。使用的时候要安装一下。
一、base64加密
<html>
<head>
<title>前端的base64使用方法</title>
</head>
<body>
</body>
<script>
var str = "hello";
var str64 = window.btoa("hello");
console.log("字符串是:"+str);
console.log("经base64编码后:"+str64);
console.log("base64解码后:"+window.atob(str64));
</script>
</html>
二、MD5加密(不可逆)
MD5的github地址
关于MD5:
MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件。
MD5共有6种加密方法:
1, hex_md5(value)
2, b64_md5(value)
3, str_md5(value)
4, hex_hmac_md5(key, data)
5, b64_hmac_md5(key, data)
6, str_hmac_md5(key, data)
md5代码下载地址——点此下载
下载好了用script 标签引入使用
<script src="md5/md5.js"></script>"></script>
<script>
var code = "123456";
var username = "123456";
var password = "123456";
var str1 = hex_md5("123456");
var str2 = b64_md5("123456");
var str3 = str_md5("123456");
var str4 = hex_hmac_md5(code,code);
var str5 = b64_hmac_md5(username,username);
var str6 = str_hmac_md5(password,password);
console.log(str1); // e10adc3949ba59abbe56e057f20f883e
console.log(str2); // 4QrcOUm6Wau+VuBX8g+IPg
console.log(str3); // áÜ9IºY«¾VàWò��>
console.log(str4); // 30ce71a73bdd908c3955a90e8f7429ef
console.log(str5); // MM5xpzvdkIw5VakOj3Qp7w
console.log(str6); // 0Îq§;Ý��9U©��t)ï
</script>
三、sha1加密(不可逆)
sha1的github地址
此处没找到sha1.js下载地址,所以在bootcdn中找在线文件到引入,需要的可自行从bootcdn中下载
<script src="https://cdn.bootcss.com/js-sha1/0.6.0/sha1.js"></script>
<script type="text/javascript">
var sha1_1 = sha1("mosquito~");
console.log(sha1_1);
var sha1_2 = sha1("admin:1001");
console.log(sha1_2);
</script>
四、编码和解码字符串
使用JS函数的escape()和unescape(),分别是编码和解码字符串
<script type="text/javascript">
var escape1 =escape("我的名字是:mosquito~");//编码
console.log(escape1);
var unescape1 = unescape(escape1); //解码
console.log(unescape1);
</script>
五、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的格式
RSA加密
var encrypt = new JSEncrypt();
encrypt.setPublicKey($('#pubkey').val());
var encrypted = encrypt.encrypt($('#input').val());
// Decrypt with the private key...
var decrypt = new JSEncrypt();
decrypt.setPrivateKey($('#privkey').val());
var uncrypted = decrypt.decrypt(encrypted);
sha256 js 前端加密
参考地址;https://blog.csdn.net/sirobot/article/details/107159829