javascript实现base64 md5 sha1 密码加密


Posted in Javascript onSeptember 09, 2015

1、base64加密

在页面中引入base64.js文件,调用方法为:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>base64加密</title>
<script type="text/javascript" src="base64.js"></script>
<script type="text/javascript"> 
 var b = new Base64(); 
 var str = b.encode("admin:admin"); 
 alert("base64 encode:" + str); 

 //解密
 str = b.decode(str); 
 alert("base64 decode:" + str); 
</script> 
</head>
<body>
</body>
</html>

2、md5加密

在页面中引用md5.js文件,调用方法为

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>md5加密</title>
<script type="text/ecmascript" src="md5.js"></script>
<script type="text/javascript"> 
 var hash = hex_md5("123dafd");
 alert(hash)
</script> 
</head>
<body>
</body>
</html>

3、sha1加密

据说这是最安全的加密

页面中引入sha1.js,调用方法为

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>sha1加密</title>
<script type="text/ecmascript" src="sha1.js"></script>
<script type="text/javascript">
 var sha = hex_sha1('mima123465')
 alert(sha) 
</script> 
</head>
<body>
</body>
</html>

文章所包含的加密下载地址:

下面给大家补充点知识:非常流行的javascript的md5加密

在网上看到的javascript的MD5加密,看比较好,就摘录了,供参考

<HTML>
 <HEAD>
 <META http-equiv='Content-Type' content='text/html; charset=gb'>
 <TITLE>非常流行的JS的md加密办法</TITLE>
 </HEAD>
 <BODY >
 <input id=test value=webasp>
 <input type=button value=md onclick="alert(hex_md(test.value))">
 <script>
 var hexcase = ; /* hex output format. - lowercase; - uppercase */
 var bpad = ""; /* base- pad character. "=" for strict RFC compliance */
 var chrsz = ; /* bits per input character. - ASCII; - Unicode */
 /*
 * These are the functions you'll usually want to call
 * They take string arguments and return either hex or base- encoded strings
 */
 function hex_md(s){ return binlhex(core_md(strbinl(s), s.length * chrsz));}
 function b_md(s){ return binlb(core_md(strbinl(s), s.length * chrsz));}
 function hex_hmac_md(key, data) { return binlhex(core_hmac_md(key, data)); }
 function b_hmac_md(key, data) { return binlb(core_hmac_md(key, data)); }
 /* Backwards compatibility - same as hex_md() */
 function calcMD(s){ return binlhex(core_md(strbinl(s), s.length * chrsz));}
 /* 
 * Perform a simple self-test to see if the VM is working 
 */
 function md_vm_test()
 {
 return hex_md("abc") == "cdfbdfdef";
 }
 /*
 * Calculate the MD of an array of little-endian words, and a bit length
 */
 function core_md(x, len)
 {
 /* append padding */
 x[len >> ] |= x << ((len) % );
 x[(((len + ) >>> ) << ) + ] = len;
 var a = ;
 var b = -;
 var c = -;
 var d = ;
 for(var i = ; i < x.length; i += )
 {
 var olda = a;
 var oldb = b;
 var oldc = c;
 var oldd = d;
 a = md_ff(a, b, c, d, x[i+ ], , -);
 d = md_ff(d, a, b, c, x[i+ ], , -);
 c = md_ff(c, d, a, b, x[i+ ], , );
 b = md_ff(b, c, d, a, x[i+ ], , -);
 a = md_ff(a, b, c, d, x[i+ ], , -);
 d = md_ff(d, a, b, c, x[i+ ], , );
 c = md_ff(c, d, a, b, x[i+ ], , -);
 b = md_ff(b, c, d, a, x[i+ ], , -);
 a = md_ff(a, b, c, d, x[i+ ], , );
 d = md_ff(d, a, b, c, x[i+ ], , -);
 c = md_ff(c, d, a, b, x[i+], , -);
 b = md_ff(b, c, d, a, x[i+], , -);
 a = md_ff(a, b, c, d, x[i+], , );
 d = md_ff(d, a, b, c, x[i+], , -);
 c = md_ff(c, d, a, b, x[i+], , -);
 b = md_ff(b, c, d, a, x[i+], , );
 a = md_gg(a, b, c, d, x[i+ ], , -);
 d = md_gg(d, a, b, c, x[i+ ], , -);
 c = md_gg(c, d, a, b, x[i+], , );
 b = md_gg(b, c, d, a, x[i+ ], , -);
 a = md_gg(a, b, c, d, x[i+ ], , -);
 d = md_gg(d, a, b, c, x[i+], , );
 c = md_gg(c, d, a, b, x[i+], , -);
 b = md_gg(b, c, d, a, x[i+ ], , -);
 a = md_gg(a, b, c, d, x[i+ ], , );
 d = md_gg(d, a, b, c, x[i+], , -);
 c = md_gg(c, d, a, b, x[i+ ], , -);
 b = md_gg(b, c, d, a, x[i+ ], , );
 a = md_gg(a, b, c, d, x[i+], , -);
 d = md_gg(d, a, b, c, x[i+ ], , -);
 c = md_gg(c, d, a, b, x[i+ ], , );
 b = md_gg(b, c, d, a, x[i+], , -);
 a = md_hh(a, b, c, d, x[i+ ], , -);
 d = md_hh(d, a, b, c, x[i+ ], , -);
 c = md_hh(c, d, a, b, x[i+], , );
 b = md_hh(b, c, d, a, x[i+], , -);
 a = md_hh(a, b, c, d, x[i+ ], , -);
 d = md_hh(d, a, b, c, x[i+ ], , );
 c = md_hh(c, d, a, b, x[i+ ], , -);
 b = md_hh(b, c, d, a, x[i+], , -);
 a = md_hh(a, b, c, d, x[i+], , );
 d = md_hh(d, a, b, c, x[i+ ], , -);
 c = md_hh(c, d, a, b, x[i+ ], , -);
 b = md_hh(b, c, d, a, x[i+ ], , );
 a = md_hh(a, b, c, d, x[i+ ], , -);
 d = md_hh(d, a, b, c, x[i+], , -);
 c = md_hh(c, d, a, b, x[i+], , );
 b = md_hh(b, c, d, a, x[i+ ], , -);
 a = md_ii(a, b, c, d, x[i+ ], , -);
 d = md_ii(d, a, b, c, x[i+ ], , );
 c = md_ii(c, d, a, b, x[i+], , -);
 b = md_ii(b, c, d, a, x[i+ ], , -);
 a = md_ii(a, b, c, d, x[i+], , );
 d = md_ii(d, a, b, c, x[i+ ], , -);
 c = md_ii(c, d, a, b, x[i+], , -);
 b = md_ii(b, c, d, a, x[i+ ], , -);
 a = md_ii(a, b, c, d, x[i+ ], , );
 d = md_ii(d, a, b, c, x[i+], , -);
 c = md_ii(c, d, a, b, x[i+ ], , -);
 b = md_ii(b, c, d, a, x[i+], , );
 a = md_ii(a, b, c, d, x[i+ ], , -);
 d = md_ii(d, a, b, c, x[i+], , -);
 c = md_ii(c, d, a, b, x[i+ ], , );
 b = md_ii(b, c, d, a, x[i+ ], , -);
 a = safe_add(a, olda);
 b = safe_add(b, oldb);
 c = safe_add(c, oldc);
 d = safe_add(d, oldd);
 }
 return Array(a, b, c, d);
}
/*
 * These functions implement the four basic operations the algorithm uses.
 */
function md_cmn(q, a, b, x, s, t)
{
 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md_ff(a, b, c, d, x, s, t)
{
 return md_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md_gg(a, b, c, d, x, s, t)
{
 return md_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md_hh(a, b, c, d, x, s, t)
{
 return md_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md_ii(a, b, c, d, x, s, t)
{
 return md_cmn(c ^ (b | (~d)), a, b, x, s, t);
}
/*
 * Calculate the HMAC-MD, of a key and some data
 */
function core_hmac_md(key, data)
{
 var bkey = strbinl(key);
 if(bkey.length > ) bkey = core_md(bkey, key.length * chrsz);
 var ipad = Array(), opad = Array();
 for(var i = ; i < ; i++) 
 {
 ipad[i] = bkey[i] ^ x;
 opad[i] = bkey[i] ^ xCCCC;
 }
 var hash = core_md(ipad.concat(strbinl(data)), + data.length * chrsz);
 return core_md(opad.concat(hash), + );
}
/*
 * Add integers, wrapping at ^. This uses -bit operations internally
 * to work around bugs in some JS interpreters.
 */
function safe_add(x, y)
{
 var lsw = (x & xFFFF) + (y & xFFFF);
 var msw = (x >> ) + (y >> ) + (lsw >> );
 return (msw << ) | (lsw & xFFFF);
}
/*
 * Bitwise rotate a -bit number to the left.
 */
function bit_rol(num, cnt)
{
 return (num << cnt) | (num >>> ( - cnt));
}
/*
 * Convert a string to an array of little-endian words
 * If chrsz is ASCII, characters > have their hi-byte silently ignored.
 */
function strbinl(str)
{
 var bin = Array();
 var mask = ( << chrsz) - ;
 for(var i = ; i < str.length * chrsz; i += chrsz)
 bin[i>>] |= (str.charCodeAt(i / chrsz) & mask) << (i%);
 return bin;
}
/*
 * Convert an array of little-endian words to a hex string.
 */
function binlhex(binarray)
{
 var hex_tab = hexcase ? "ABCDEF" : "abcdef";
 var str = "";
 for(var i = ; i < binarray.length * ; i++)
 {
 str += hex_tab.charAt((binarray[i>>] >> ((i%)*+)) & xF) +
 hex_tab.charAt((binarray[i>>] >> ((i%)* )) & xF);
 }
 return str;
}
/*
 * Convert an array of little-endian words to a base- string
 */
function binlb(binarray)
{
 var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/";
 var str = "";
 for(var i = ; i < binarray.length * ; i += )
 {
 var triplet = (((binarray[i >> ] >> * ( i %)) & xFF) << )
 | (((binarray[i+ >> ] >> * ((i+)%)) & xFF) << )
 | ((binarray[i+ >> ] >> * ((i+)%)) & xFF);
 for(var j = ; j < ; j++)
 {
 if(i * + j * > binarray.length * ) str += bpad;
 else str += tab.charAt((triplet >> *(-j)) & xF);
 }
 }
 return str;
}
</script> 
</BODY></HTML>

以上所述是小编给大家介绍的javascript实现base64 md5 sha1 密码加密,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 面向对象之命名空间
May 04 Javascript
jquery动态加载图片数据练习代码
Aug 04 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
Dec 13 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
Dec 17 Javascript
JavaScript在IE和FF下的兼容性问题
May 19 Javascript
jQuery中prevAll()方法用法实例
Jan 08 Javascript
js带缩略图的图片轮播效果代码分享
Sep 14 Javascript
jquery实现一个简单的表单验证实例
Mar 30 Javascript
利用Javascript获取选择文本所在的句子详解
Dec 03 Javascript
简单了解Javscript中兄弟ifream的方法调用
Jun 17 Javascript
js神秘的电报密码 哈弗曼编码实现
Sep 10 Javascript
jQuery HTML css()方法与css类实例详解
May 20 jQuery
jQuery简单实现仿京东商城的左侧菜单效果代码
Sep 09 #Javascript
JavaScript中实现Map的示例代码
Sep 09 #Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
Sep 09 #Javascript
javascript实现日期时间动态显示示例代码
Sep 08 #Javascript
使用JQuery在线制作ppt并在线演示源码特效
Sep 08 #Javascript
js带前后翻页的图片切换效果代码分享
Sep 08 #Javascript
jQuery实现带动画效果的多级下拉菜单代码
Sep 08 #Javascript
You might like
PHP中使用匿名函数操作数据库的例子
2014/11/17 PHP
php实现模拟post请求用法实例
2015/07/11 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
php常用数组函数实例小结
2016/12/29 PHP
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
Python求出0~100以内的所有素数
2018/01/23 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
python and or用法详解
2019/06/26 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
python @classmethod 的使用场合详解
2019/08/23 Python
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
EJB timer的种类
2014/10/28 面试题
八一慰问活动方案
2014/02/07 职场文书
《中华少年》教学反思
2014/02/15 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
行政撤诉申请书
2015/05/18 职场文书
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android