MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件。
优缺点:
1,用js对私密信息加密可避免在网络中输入明文信息,被他人截取数据包而造成数据泄露。
2,避免缓存中自动缓存密码。比如在使用火狐浏览器登陆时,输入的用户名及密码自动缓存后,下次登陆无需输入密码就可实现登录,这样就给别人留下了漏洞,当别人使用你的电脑登陆那么你的密码就泄露了。使用js加密时,缓存的加密后的密文,用密文做密码登录是不成功的,即使泄露也是泄露的密文,对密码不会造成威胁。 缺点是: 每次登陆时都要手动输入密码,比较麻烦。
3,使用js加密,减少了服务器加密时的资源消耗,从理论上提高了服务器的性能。为了安全,很有必要在做服务端的加密,无论从理论还是实际,两道门比一道门要安全些,至少给攻击者造成了一个障碍。
在MD5.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文件;然后,在需要加密的页面引用MD5脚本文件;最后,只需一句代码就可以实现加密了。
<script src="js/md5.js"></script>
<script>
var code = "abc";
var username = "abc";
var password = "adc";
var str1 = hex_md5("adc");
var str2 = b64_md5("adc");
var str3 = str_md5("adc");
var str4 = hex_hmac_md5(code,code);
var str5 = b64_hmac_md5(username,username);
var str6 = str_hmac_md5(password,password);
console.log('str1:',str1); // str1:225e8a3fe20e95f6cd9b9e10bfe5eb69
console.log('str2:',str2); // str2:Il6KP+IOlfbNm54Qv+XraQ
console.log('str3:',str3); // str3:"^?âöÍ¿åëi
console.log('str4:',str4); // str4:f71cda1c893766a115234db7fdd59f63
console.log('str5:',str5); // str5:9xzaHIk3ZqEVI023/dWfYw
console.log('str6:',str6); // str6:ÆwFêúÌ6:ÁøsdÙÑ
</script>