A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > javascript实现base64 md5 sha1 密码加密

javascript实现base64 md5 sha1 密码加密

时间:2015-09-09 16:02作者:yezheng人气:100

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

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号