Base64MD5SHA1密码加密的Javascript

1、Base64加密

的base64.js文件引入页面,和调用方法:






Base64加密


var b =新base64();
var str = b.encode(管理员:admin);
警报(Base64编码:+力量);
解密
STR = b.decode(STR);
警报(Base64解码:+力量);







2,MD5加密

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






MD5加密


VaR hash = hex_md5(123dafd );
警报(散列)







3、SHA1加密

据说这是最安全的加密。

sha1.js的介绍页面,并调用方法






SHA1加密


VaR沙= hex_sha1('mima123465)
警戒(SHA)







MD5加密的非常流行的javascript

javascript在互联网上看到的MD5加密,看得比较好,摘录,供参考。





一种非常流行的js加密方法





无功hexcase = HEX格式输出。; / * * /大写:小写;
VaR BPAD =基垫的特征。; / * =严格遵守RFC。
无功chrsz =每输入字符位。; / * * /非unicode字符;
*
*这些是你通常想调用的函数。
*接受字符串参数,并返回十六进制或基编码字符串。
* /
功能hex_md(){ return binlhex(core_md(strbinl(S),s.length * chrsz))};}
功能b_md(){ return Binlb(core_md(strbinl(S),s.length * chrsz))};}
功能hex_hmac_md(关键数据){ return binlhex(core_hmac_md(关键数据))};}
功能b_hmac_md(关键数据){ return Binlb(core_hmac_md(关键数据))};}
向后兼容-同 / * * /(hex_md)
功能calcmd(){ return binlhex(core_md(strbinl(S),s.length * chrsz))};}
*
*执行简单的自检,看看VM是否正常工作。
* /
md_vm_test()函数
{
返回hex_md(ABC)= =cdfbdfdef ;
}
*
*计算小endian字数组的MD,和一点
* /
功能core_md(x,Len)
{
附加填充
X { Len X(| = }(LEN)%);
x {(((+)));
var =;
var =—;
var—;
变量D =;
对于(var =我;我的<< x.length;我+ =)
{
VaR OLDA =一;
VaR现代化= B;
无功oldc = C;
无功氧化物轻掺杂漏衬垫结构= D;
a md_ff(A,B,C,D,X { }我+,-);
a md_ff(D,A,B,C,X { }我+,-);
C = md_ff(C,D,A,B,X {我},);
B = md_ff(B,C,D,A,X { }我+,-);
a md_ff(A,B,C,D,X { }我+,-);
a md_ff(D,A,B,C,X {我},);
C = md_ff(C,D,A,B,X { }我+,-);
B = md_ff(B,C,D,A,X { }我+,-);
a md_ff(A,B,C,D,X {我},);
a md_ff(D,A,B,C,X { }我+,-);
C = md_ff(C,D,A,B,X { }我+,-);
B = md_ff(B,C,D,A,X { }我+,-);
a md_ff(A,B,C,D,X {我},);
a md_ff(D,A,B,C,X { }我+,-);
C = md_ff(C,D,A,B,X { }我+,-);
B = md_ff(B,C,D,A,X {我},);
a md_gg(A,B,C,D,X { }我+,-);
a md_gg(D,A,B,C,X { }我+,-);
C = md_gg(C,D,A,B,X {我},);
B = md_gg(B,C,D,A,X { }我+,-);
a md_gg(A,B,C,D,X { }我+,-);
a md_gg(D,A,B,C,X {我},);
C = md_gg(C,D,A,B,X { }我+,-);
B = md_gg(B,C,D,A,X { }我+,-);
a md_gg(A,B,C,D,X {我},);
a md_gg(D,A,B,C,X { }我+,-);
C = md_gg(C,D,A,B,X { }我+,-);
B = md_gg(B,C,D,A,X {我},);
a md_gg(A,B,C,D,X { }我+,-);
a md_gg(D,A,B,C,X { }我+,-);
C = md_gg(C,D,A,B,X {我},);
B = md_gg(B,C,D,A,X { }我+,-);
a md_hh(A,B,C,D,X { }我+,-);
a md_hh(D,A,B,C,X { }我+,-);
C = md_hh(C,D,A,B,X {我},);
B = md_hh(B,C,D,A,X { }我+,-);
a md_hh(A,B,C,D,X { }我+,-);
a md_hh(D,A,B,C,X {我},);
C = md_hh(C,D,A,B,X { }我+,-);
B = md_hh(B,C,D,A,X { }我+,-);
a md_hh(A,B,C,D,X {我},);
a md_hh(D,A,B,C,X { }我+,-);
C = md_hh(C,D,A,B,X { }我+,-);
B = md_hh(B,C,D,A,X {我},);
a md_hh(A,B,C,D,X { }我+,-);
a md_hh(D,A,B,C,X { }我+,-);
C = md_hh(C,D,A,B,X {我},);
B = md_hh(B,C,D,A,X { }我+,-);
a md_ii(A,B,C,D,X { }我+,-);
a md_ii(D,A,B,C,X {我},);
C = md_ii(C,D,A,B,X { }我+,-);
B = md_ii(B,C,D,A,X { }我+,-);
a md_ii(A,B,C,D,X {我},);
a md_ii(D,A,B,C,X { }我+,-);
C = md_ii(C,D,A,B,X { }我+,-);
B = md_ii(B,C,D,A,X { }我+,-);
a md_ii(A,B,C,D,X {我},);
a md_ii(D,A,B,C,X { }我+,-);
C = md_ii(C,D,A,B,X { }我+,-);
B = md_ii(B,C,D,A,X {我},);
a md_ii(A,B,C,D,X { }我+,-);
a md_ii(D,A,B,C,X { }我+,-);
C = md_ii(C,D,A,B,X {我},);
B = md_ii(B,C,D,A,X { }我+,-);
a safe_add(一处);
B = safe_add(B,奥尔登堡);
C = safe_add(C,oldc);
a safe_add(D,氧化物轻掺杂漏衬垫结构);
}
返回数组(a、b、c、d);
}
*
*这些功能实现的四种基本操作的alrithm使用。
* /
功能md_cmn(Q,A,B,X,S,T)
{
返回safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),S),B);
}
功能md_ff(A,B,C,D,X,S,T)
{
返回md_cmn((B C)|((~ B)D),A,B,X,S,T);
}
功能md_gg(A,B,C,D,X,S,T)
{
返回md_cmn((B D)|(C(~ D)),A、B,X,S,T);
}
功能md_hh(A,B,C,D,X,S,T)
{
返回md_cmn(B C D ^ ^,A,B,X,S,T);
}
功能md_ii(A,B,C,D,X,S,T)
{
返回md_cmn(C(B | ^(~ D)),A、B,X,S,T);
}
*
*计算hmac-md,一个关键的一些数据
* /
功能core_hmac_md(关键数据)
{
var = strbinl重点(关键);
如果(bkey.length >)重点= core_md(重点,key.length * chrsz);
VaR的iPad =阵列(),opad阵列();
对于(var i;i;<;+ +)
{
iPad { } = { }我问候我^ X;
opad {我} = { } ^ xcccc问候我;
}
VaR hash = core_md(ipad.concat(strbinl(数据)),+ data.length * chrsz);
返回core_md(opad.concat(hash),+);
}
*
*添加整数,在内部使用这个位操作。
*在一些JS解释器中处理bug。
* /
功能safe_add(x,y)
{
VaR模型=(X xffff)+(Y xffff);
VaR垃圾=(x >)+(y >)+(LSW > > >);
返回(MSW)|(LSW xffff);
}
*
* Bitwise旋转一个位数向左。
* /
功能bit_rol(num,CNT)
{
返回(数字>(- CNT));
}
*
*字符串转换为字节数组的话
*如果chrsz是ASCII字符的高字节忽略。>有
* /
功能strbinl(STR)
{
数组();
VaR的面具=(chrsz)—;
对于(var =我;我的<< str.length * chrsz;我= chrsz)
本{我> > } | =(str.charcodeat(我/ chrsz)面膜)(我);
返回仓;
}
*
*将小端字数组一进制字符串。
* /
功能binlhex(binarray)
{
无功hex_tab = hexcaseABCDEF:ABCDEF;
var;
对于(var i =;i < binarray.length *;i++)
{
(str = hex_tab.charat(binarray {我> > }((我)芳*)))
hex_tab.charat((((binarray { }我> > >)((我)*))XF);
}
返回字符;
}
*
*将小端字数组基柱
* /
功能Binlb(binarray)
{
var标签=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz + / ;
var;
对于(var =我;我的<< binarray.length;我+ =)
{
VAR三=(((binarray {我>)> *(我))xff)<< << << << < > < < <(binarray {我>)> *(我)))
|(((binarray > > > > { } *(% xff(我+)))))
|((binarray > > > > { } *(% xff(我+))));
对于(var j =;j;j + +)
{
如果(我+ J×××str += BPAD > binarray。长度);
其他(str = tab.charat(三> > *(J))XF);
}
}
返回字符;
}