Heim > Web-Frontend > js-Tutorial > Hauptteil

Javascript脚本实现静态网页加密实例代码_javascript技巧

WBOY
Freigeben: 2016-05-16 17:17:26
Original
1150 Leute haben es durchsucht

Javascript脚本实现静态网页加密,阅读Javascript脚本实现静态网页加密,前两天看见有人问静态网页加密问题,就写了这个代码思路:加密时:先把用户的密钥A用md5加密为B,然后用B异或源文件S0得到目标文件S1,把S1存入js变量中。解密时:询问密钥,然后操作同加密

前两天看见有人问静态网页加密问题,就写了这个代码

思路:

加密时:先把用户的密钥A用md5加密为B,然后用B异或源文件S0得到目标文件S1,把S1存入js变量中。

解密时:询问密钥,然后操作同加密。

因为用了md5,个人认为没有密钥的时候是无法破解的(暴力除外)

大家试用一下哈哈:

源代码如下:

复制代码 代码如下:



Web Encoder

<script><BR>function webEncode(){<BR> strSource=escape(XOR(t1.value,STR.md5(p1.value)));<BR> //strSource=t1.value;<BR> strOut="<script>\r\nstrHTML=\"\";\r\n";<BR> for(var i=0;i+70<strSource.length;i+=70){<BR> strOut+="strHTML+=\""+addSlash(strSource.substring(i,i+70))+"\";\r\n";<BR> }<BR> strOut+="strHTML+=\""+addSlash(strSource.substring(i,strSource.length))+"\";\r\n";<BR> strOut+=XOR+"\r\n";<br><br> //below code load the STR object<BR> strOut+="var STR =\r\n{\r\n\thexcase : 0, \/* hex output format. 0 - lowercase; 1 - ";<BR> strOut+="uppercase *\/\r\n\tb64pad : \"\", \/* base-64 pad character. \"=\" for ";<BR> strOut+="strict RFC compliance *\/\r\n\tchrsz : 8, \/* bits per input character";<BR> strOut+=". 8 - ASCII; 16 - Unicode *\/\r\n\t\r\n\tb64_hmac_md5:\r\n\t\tfunction(key, ";<BR> strOut+="data) { return binl2b64(core_hmac_md5(key, data)); },\r\n\t\t\r\n\tb64_md5:\r\n";<BR> strOut+="\t\tfunction(s){ return binl2b64(core_md5(str2binl(s), s.length * this.c";<BR> strOut+="hrsz));},\r\n\t\t\r\n\tbinl2b64:\r\n\t\tfunction(binarray){\r\n\t\t var tab = \"ABCDE";<BR> strOut+="FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/\";\r\n\t\t var";<BR> strOut+=" str = \"\";\r\n\t\t for(var i = 0; i < binarray.length * 4; i += 3)\r\n\t\t {";<BR> strOut+="\r\n\t\t var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) ";<BR> strOut+="<< 16)\r\n\t\t | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & ";<BR> strOut+="0xFF) << 8 )\r\n\t\t | ((binarray[i+2 >> 2] >> 8 * ((i+2)%";<BR> strOut+="4)) & 0xFF);\r\n\t\t for(var j = 0; j < 4; j++)\r\n\t\t {\r\n\t\t if(i ";<BR> strOut+="* 8 + j * 6 > binarray.length * 32) str += this.b64pad;\r\n\t\t else ";<BR> strOut+="str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);\r\n\t\t }\r\n\t\t }\r\n\t\t r";<BR> strOut+="eturn str;\r\n\t\t},\r\n\t\t\r\n\tbinl2hex:\r\n\t\tfunction(binarray){\r\n\t\t var hex_t";<BR> strOut+="ab = this.hexcase ? \"0123456789ABCDEF\" : \"0123456789abcdef\";\r\n\t\t var ";<BR> strOut+="str = \"\";\r\n\t\t for(var i = 0; i < binarray.length * 4; i++)\r\n\t\t {\r\n\t\t";<BR> strOut+=" str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +\r\n\t\t";<BR> strOut+=" hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);\r\n\t\t ";<BR> strOut+=" }\r\n\t\t return str;\r\n\t\t},\r\n\t\r\n\tbinl2str:\r\n\t\tfunction(bin){\r\n\t\t var st";<BR> strOut+="r = \"\";\r\n\t\t var mask = (1 << this.chrsz) - 1;\r\n\t\t for(var i = 0; i <";<BR> strOut+=" bin.length * 32; i += this.chrsz)\r\n\t\t str += String.fromCharCode((";<BR> strOut+="bin[i>>5] >>> (i % 32)) & mask);\r\n\t\t return str;\r\n\t\t},\r\n\t\t\r\n\tbit_rol:";<BR> strOut+="\r\n\t\tfunction(num, cnt){return (num << cnt) | (num >>> (32 - cnt));},\r\n";<BR> strOut+="\t\t\r\n\tcore_hmac_md5:\r\n\t\tfunction(key, data){\r\n\t\t var bkey = str2binl(k";<BR> strOut+="ey);\r\n\t\t if(bkey.length > 16) bkey = core_md5(bkey, key.length * this";<BR> strOut+=".chrsz);\r\n\t\t\r\n\t\t var ipad = Array(16), opad = Array(16);\r\n\t\t for(var";<BR> strOut+=" i = 0; i < 16; i++)\r\n\t\t {\r\n\t\t ipad[i] = bkey[i] ^ 0x36363636;\r\n\t\t";<BR> strOut+=" opad[i] = bkey[i] ^ 0x5C5C5C5C;\r\n\t\t }\r\n\t\t\r\n\t\t var hash = core_md";<BR> strOut+="5(ipad.concat(str2binl(data)), 512 + data.length * this.chrsz);\r\n\t\t r";<BR> strOut+="eturn core_md5(opad.concat(hash), 512 + 128);\r\n\t\t},\r\n\t\t\r\n\tcore_md5:\r\n\t";<BR> strOut+="\tfunction(x, len){\r\n\t\t \/* append padding *\/\r\n\t\t x[len >> 5] |= 0x80 ";<BR> strOut+="<< ((len) % 32);\r\n\t\t x[(((len + 64) >>> 9) << 4) + 14] = len;\r\n\t\t\r\n\t\t";<BR> strOut+=" var a = 1732584193;\r\n\t\t var b = -271733879;\r\n\t\t var c = -17325841";<BR> strOut+="94;\r\n\t\t var d = 271733878;\r\n\t\t\r\n\t\t for(var i = 0; i < x.length; i +";<BR> strOut+="= 16)\r\n\t\t {\r\n\t\t var olda = a;\r\n\t\t var oldb = b;\r\n\t\t var oldc";<BR> strOut+=" = c;\r\n\t\t var oldd = d;\r\n\t\t\r\n\t\t a = this.md5_ff(a, b, c, d, x[i+";<BR> strOut+=" 0], 7 , -680876936);\r\n\t\t d = this.md5_ff(d, a, b, c, x[i+ 1], 12, ";<BR> strOut+="-389564586);\r\n\t\t c = this.md5_ff(c, d, a, b, x[i+ 2], 17, 60610581";<BR> strOut+="9);\r\n\t\t b = this.md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);\r\n\t\t ";<BR> strOut+=" a = this.md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);\r\n\t\t d = th";<BR> strOut+="is.md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);\r\n\t\t c = this.md5_f";<BR> strOut+="f(c, d, a, b, x[i+ 6], 17, -1473231341);\r\n\t\t b = this.md5_ff(b, c, ";<BR> strOut+="d, a, x[i+ 7], 22, -45705983);\r\n\t\t a = this.md5_ff(a, b, c, d, x[i+";<BR> strOut+=" 8], 7 , 1770035416);\r\n\t\t d = this.md5_ff(d, a, b, c, x[i+ 9], 12,";<BR> strOut+=" -1958414417);\r\n\t\t c = this.md5_ff(c, d, a, b, x[i+10], 17, -42063)";<BR> strOut+=";\r\n\t\t b = this.md5_ff(b, c, d, a, x[i+11], 22, -1990404162);\r\n\t\t ";<BR> strOut+=" a = this.md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);\r\n\t\t d = thi";<BR> strOut+="s.md5_ff(d, a, b, c, x[i+13], 12, -40341101);\r\n\t\t c = this.md5_ff(c";<BR> strOut+=", d, a, b, x[i+14], 17, -1502002290);\r\n\t\t b = this.md5_ff(b, c, d, ";<BR> strOut+="a, x[i+15], 22, 1236535329);\r\n\t\t\r\n\t\t a = this.md5_gg(a, b, c, d, x";<BR> strOut+="[i+ 1], 5 , -165796510);\r\n\t\t d = this.md5_gg(d, a, b, c, x[i+ 6], 9";<BR> strOut+=" , -1069501632);\r\n\t\t c = this.md5_gg(c, d, a, b, x[i+11], 14, 6437";<BR> strOut+="17713);\r\n\t\t b = this.md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);\r\n";<BR> strOut+="\t\t a = this.md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);\r\n\t\t d =";<BR> strOut+=" this.md5_gg(d, a, b, c, x[i+10], 9 , 38016083);\r\n\t\t c = this.md5_";<BR> strOut+="gg(c, d, a, b, x[i+15], 14, -660478335);\r\n\t\t b = this.md5_gg(b, c, ";<BR> strOut+="d, a, x[i+ 4], 20, -405537848);\r\n\t\t a = this.md5_gg(a, b, c, d, x[i";<BR> strOut+="+ 9], 5 , 568446438);\r\n\t\t d = this.md5_gg(d, a, b, c, x[i+14], 9 ,";<BR> strOut+=" -1019803690);\r\n\t\t c = this.md5_gg(c, d, a, b, x[i+ 3], 14, -187363";<BR> strOut+="961);\r\n\t\t b = this.md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);\r\n\t";<BR> strOut+="\t a = this.md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);\r\n\t\t d =";<BR> strOut+=" this.md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);\r\n\t\t c = this.md5_";<BR> strOut+="gg(c, d, a, b, x[i+ 7], 14, 1735328473);\r\n\t\t b = this.md5_gg(b, c,";<BR> strOut+=" d, a, x[i+12], 20, -1926607734);\r\n\t\t\r\n\t\t a = this.md5_hh(a, b, c, ";<BR> strOut+="d, x[i+ 5], 4 , -378558);\r\n\t\t d = this.md5_hh(d, a, b, c, x[i+ 8], ";<BR> strOut+="11, -2022574463);\r\n\t\t c = this.md5_hh(c, d, a, b, x[i+11], 16, 183";<BR> strOut+="9030562);\r\n\t\t b = this.md5_hh(b, c, d, a, x[i+14], 23, -35309556);\r";<BR> strOut+="\n\t\t a = this.md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);\r\n\t\t d";<BR> strOut+=" = this.md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);\r\n\t\t c = this.";<BR> strOut+="md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);\r\n\t\t b = this.md5_hh(b,";<BR> strOut+=" c, d, a, x[i+10], 23, -1094730640);\r\n\t\t a = this.md5_hh(a, b, c, d";<BR> strOut+=", x[i+13], 4 , 681279174);\r\n\t\t d = this.md5_hh(d, a, b, c, x[i+ 0]";<BR> strOut+=", 11, -358537222);\r\n\t\t c = this.md5_hh(c, d, a, b, x[i+ 3], 16, -72";<BR> strOut+="2521979);\r\n\t\t b = this.md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);\r";<BR> strOut+="\n\t\t a = this.md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);\r\n\t\t d ";<BR> strOut+="= this.md5_hh(d, a, b, c, x[i+12], 11, -421815835);\r\n\t\t c = this.md";<BR> strOut+="5_hh(c, d, a, b, x[i+15], 16, 530742520);\r\n\t\t b = this.md5_hh(b, c";<BR> strOut+=", d, a, x[i+ 2], 23, -995338651);\r\n\t\t\r\n\t\t a = this.md5_ii(a, b, c, ";<BR> strOut+="d, x[i+ 0], 6 , -198630844);\r\n\t\t d = this.md5_ii(d, a, b, c, x[i+ 7";<BR> strOut+="], 10, 1126891415);\r\n\t\t c = this.md5_ii(c, d, a, b, x[i+14], 15, -";<BR> strOut+="1416354905);\r\n\t\t b = this.md5_ii(b, c, d, a, x[i+ 5], 21, -57434055";<BR> strOut+=");\r\n\t\t a = this.md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);\r\n\t\t ";<BR> strOut+=" d = this.md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);\r\n\t\t c = th";<BR> strOut+="is.md5_ii(c, d, a, b, x[i+10], 15, -1051523);\r\n\t\t b = this.md5_ii(b";<BR> strOut+=", c, d, a, x[i+ 1], 21, -2054922799);\r\n\t\t a = this.md5_ii(a, b, c, ";<BR> strOut+="d, x[i+ 8], 6 , 1873313359);\r\n\t\t d = this.md5_ii(d, a, b, c, x[i+1";<BR> strOut+="5], 10, -30611744);\r\n\t\t c = this.md5_ii(c, d, a, b, x[i+ 6], 15, -1";<BR> strOut+="560198380);\r\n\t\t b = this.md5_ii(b, c, d, a, x[i+13], 21, 130915164";<BR> strOut+="9);\r\n\t\t a = this.md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);\r\n\t\t ";<BR> strOut+=" d = this.md5_ii(d, a, b, c, x[i+11], 10, -1120210379);\r\n\t\t c = th";<BR> strOut+="is.md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);\r\n\t\t b = this.md5_ii";<BR> strOut+="(b, c, d, a, x[i+ 9], 21, -343485551);\r\n\t\t\r\n\t\t a = this.safe_add(a,";<BR> strOut+=" olda);\r\n\t\t b = this.safe_add(b, oldb);\r\n\t\t c = this.safe_add(c,";<BR> strOut+=" oldc);\r\n\t\t d = this.safe_add(d, oldd);\r\n\t\t }\r\n\t\t return Array(a,";<BR> strOut+=" b, c, d);\r\n\t\t},\r\n\t\t\r\n\thex_hmac_md5:function(key, data){ return this.b";<BR> strOut+="inl2hex(this.core_hmac_md5(key, data)); },\r\n\t\r\n\thex_md5:function(s){re";<BR> strOut+="turn this.binl2hex(this.core_md5(this.str2binl(s), s.length * this.chr";<BR> strOut+="sz));},\r\n\t\r\n\tmd5:function(s){return(this.hex_md5(s));},\r\n\r\n\tmd5_cmn:fu";<BR> strOut+="nction(q, a, b, x, s, t){return this.safe_add(this.bit_rol(this.safe_a";<BR> strOut+="dd(this.safe_add(a, q), this.safe_add(x, t)), s),b);},\r\n\r\n\tmd5_ff:func";<BR> strOut+="tion(a, b, c, d, x, s, t){return this.md5_cmn((b & c) | ((~b) & d), a,";<BR> strOut+=" b, x, s, t);},\r\n\r\n\tmd5_gg:function(a, b, c, d, x, s, t){return this.m";<BR> strOut+="d5_cmn((b & d) | (c & (~d)), a, b, x, s, t);},\r\n\r\n\tmd5_hh:function(a, ";<BR> strOut+="b, c, d, x, s, t){return this.md5_cmn(b ^ c ^ d, a, b, x, s, t);},\r\n\r\n";<BR> strOut+="\tmd5_ii:function(a, b, c, d, x, s, t){return this.md5_cmn(c ^ (b | (~d";<BR> strOut+=")), a, b, x, s, t);},\r\n\r\n\tmd5_vm_test:function(){return hex_md5(\"abc\")";<BR> strOut+=" == \"900150983cd24fb0d6963f7d28e17f72\";},\r\n\t\r\n\tsafe_add:\r\n\t\tfunction(x";<BR> strOut+=", y){\r\n\t\t var lsw = (x & 0xFFFF) + (y & 0xFFFF);\r\n\t\t var msw = (x >>";<BR> strOut+=" 16) + (y >> 16) + (lsw >> 16);\r\n\t\t return (msw << 16) | (lsw & 0xFFF";<BR> strOut+="F);\r\n\t\t},\r\n\t\t\r\n\tstr2binl:\r\n\t\tfunction(str){\r\n\t\t var bin = Array();\r\n\t";<BR> strOut+="\t var mask = (1 << this.chrsz) - 1;\r\n\t\t for(var i = 0; i < str.lengt";<BR> strOut+="h * this.chrsz; i += this.chrsz)\r\n\t\t bin[i>>5] |= (str.charCodeAt(i";<BR> strOut+=" \/ this.chrsz) & mask) << (i%32);\r\n\t\t return bin;\r\n\t\t},\r\n\r\n\tstr_hmac_";<BR> strOut+="md5:function(key, data){ return binl2str(core_hmac_md5(key, data)); },";<BR> strOut+="\r\n\r\n\tstr_md5:function(s){ return binl2str(core_md5(str2binl(s), s.leng";<BR> strOut+="th * this.chrsz));}\r\n}\r\n";<br><br> strOut+=performPage+"\r\n";<BR> strOut+="performPage();\r\n";<BR> strOut+="<\/script>";<BR> t2.value=strOut;<BR>} <P>function runCode(){<BR> win=open("about:blank");<BR> win.document.write(t2.value);<BR> win.document.close();<BR>} <P>function addSlash(str){<BR> return(str).replace(/\\/g,"\\\\").replace(/\//g,"\\\/").replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\"/g,"\\\"").replace(/\'/g,"\\\'").replace(/\t/g,"\\t");<BR>} <P>function XOR(strV,strPass){<BR> var intPassLength=strPass.length;<BR> var re="";<BR> for(var i=0;i<strV.length;i++){<BR> re+=String.fromCharCode(strV.charCodeAt(i)^strPass.charCodeAt(i%intPassLength));<BR> }<BR> return(re);<BR>} <P>function performPage(strPass){<BR> if(strPass){<BR> document.cookie="password="+escape(strPass);<BR> document.write(XOR(unescape(strHTML),STR.md5(strPass)));<BR> return(false);<BR> }<BR> //**********如果需要自动记住密码,请将下面的注释改成代码<BR> /*<BR> var pass=document.cookie.match(/password=([^;]+)/i);<BR> if(pass){<BR> pass=unescape(pass[1]);<BR> document.write(XOR(unescape(strHTML),STR.md5(pass)));<BR> return(false);<BR> }<BR> */<BR> //*************<BR> strAskPass="<table cellspacing=0 cellpadding=0 width=100% height=100% align=center valign=middle><tr><td> <td align=center>";<BR> strAskPass+="<b>Password:<input style=\"border-width:1px;\" type=password id=ps01 onkeydown=\"if(event.keyCode==13){performPage(this.value);}\">";<BR> strAskPass+="<input style=\"border-width:1px;\" type=button onclick=\"performPage(ps01.value);\" value=Enter><td> ";<BR> document.write(strAskPass);<BR>} <P>var STR =<BR>{<BR> hexcase : 0, /* hex output format. 0 - lowercase; 1 - uppercase */<BR> b64pad : "", /* base-64 pad character. "=" for strict RFC compliance */<BR> chrsz : 8, /* bits per input character. 8 - ASCII; 16 - Unicode */<br><br> b64_hmac_md5:<BR> function(key, data) { return binl2b64(core_hmac_md5(key, data)); },<br><br> b64_md5:<BR> function(s){ return binl2b64(core_md5(str2binl(s), s.length * this.chrsz));},<br><br> binl2b64:<BR> function(binarray){<BR> var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";<BR> var str = "";<BR> for(var i = 0; i < binarray.length * 4; i += 3)<BR> {<BR> var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)<BR> | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )<BR> | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);<BR> for(var j = 0; j < 4; j++)<BR> {<BR> if(i * 8 + j * 6 > binarray.length * 32) str += this.b64pad;<BR> else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);<BR> }<BR> }<BR> return str;<BR> },<br><br> binl2hex:<BR> function(binarray){<BR> var hex_tab = this.hexcase ? "0123456789ABCDEF" : "0123456789abcdef";<BR> var str = "";<BR> for(var i = 0; i < binarray.length * 4; i++)<BR> {<BR> str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +<BR> hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);<BR> }<BR> return str;<BR> },<br><br> binl2str:<BR> function(bin){<BR> var str = "";<BR> var mask = (1 << this.chrsz) - 1;<BR> for(var i = 0; i < bin.length * 32; i += this.chrsz)<BR> str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);<BR> return str;<BR> },<br><br> bit_rol:<BR> function(num, cnt){return (num << cnt) | (num >>> (32 - cnt));},<br><br> core_hmac_md5:<BR> function(key, data){<BR> var bkey = str2binl(key);<BR> if(bkey.length > 16) bkey = core_md5(bkey, key.length * this.chrsz);<br><br> var ipad = Array(16), opad = Array(16);<BR> for(var i = 0; i < 16; i++)<BR> {<BR> ipad[i] = bkey[i] ^ 0x36363636;<BR> opad[i] = bkey[i] ^ 0x5C5C5C5C;<BR> }<br><br> var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * this.chrsz);<BR> return core_md5(opad.concat(hash), 512 + 128);<BR> },<br><br> core_md5:<BR> function(x, len){<BR> /* append padding */<BR> x[len >> 5] |= 0x80 << ((len) % 32);<BR> x[(((len + 64) >>> 9) << 4) + 14] = len;<br><br> var a = 1732584193;<BR> var b = -271733879;<BR> var c = -1732584194;<BR> var d = 271733878;<br><br> for(var i = 0; i < x.length; i += 16)<BR> {<BR> var olda = a;<BR> var oldb = b;<BR> var oldc = c;<BR> var oldd = d;<br><br> a = this.md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);<BR> d = this.md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);<BR> c = this.md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);<BR> b = this.md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);<BR> a = this.md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);<BR> d = this.md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);<BR> c = this.md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);<BR> b = this.md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);<BR> a = this.md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);<BR> d = this.md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);<BR> c = this.md5_ff(c, d, a, b, x[i+10], 17, -42063);<BR> b = this.md5_ff(b, c, d, a, x[i+11], 22, -1990404162);<BR> a = this.md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);<BR> d = this.md5_ff(d, a, b, c, x[i+13], 12, -40341101);<BR> c = this.md5_ff(c, d, a, b, x[i+14], 17, -1502002290);<BR> b = this.md5_ff(b, c, d, a, x[i+15], 22, 1236535329);<br><br> a = this.md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);<BR> d = this.md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);<BR> c = this.md5_gg(c, d, a, b, x[i+11], 14, 643717713);<BR> b = this.md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);<BR> a = this.md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);<BR> d = this.md5_gg(d, a, b, c, x[i+10], 9 , 38016083);<BR> c = this.md5_gg(c, d, a, b, x[i+15], 14, -660478335);<BR> b = this.md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);<BR> a = this.md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);<BR> d = this.md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);<BR> c = this.md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);<BR> b = this.md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);<BR> a = this.md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);<BR> d = this.md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);<BR> c = this.md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);<BR> b = this.md5_gg(b, c, d, a, x[i+12], 20, -1926607734);<br><br> a = this.md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);<BR> d = this.md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);<BR> c = this.md5_hh(c, d, a, b, x[i+11], 16, 1839030562);<BR> b = this.md5_hh(b, c, d, a, x[i+14], 23, -35309556);<BR> a = this.md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);<BR> d = this.md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);<BR> c = this.md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);<BR> b = this.md5_hh(b, c, d, a, x[i+10], 23, -1094730640);<BR> a = this.md5_hh(a, b, c, d, x[i+13], 4 , 681279174);<BR> d = this.md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);<BR> c = this.md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);<BR> b = this.md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);<BR> a = this.md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);<BR> d = this.md5_hh(d, a, b, c, x[i+12], 11, -421815835);<BR> c = this.md5_hh(c, d, a, b, x[i+15], 16, 530742520);<BR> b = this.md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);<br><br> a = this.md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);<BR> d = this.md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);<BR> c = this.md5_ii(c, d, a, b, x[i+14], 15, -1416354905);<BR> b = this.md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);<BR> a = this.md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);<BR> d = this.md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);<BR> c = this.md5_ii(c, d, a, b, x[i+10], 15, -1051523);<BR> b = this.md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);<BR> a = this.md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);<BR> d = this.md5_ii(d, a, b, c, x[i+15], 10, -30611744);<BR> c = this.md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);<BR> b = this.md5_ii(b, c, d, a, x[i+13], 21, 1309151649);<BR> a = this.md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);<BR> d = this.md5_ii(d, a, b, c, x[i+11], 10, -1120210379);<BR> c = this.md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);<BR> b = this.md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);<br><br> a = this.safe_add(a, olda);<BR> b = this.safe_add(b, oldb);<BR> c = this.safe_add(c, oldc);<BR> d = this.safe_add(d, oldd);<BR> }<BR> return Array(a, b, c, d);<BR> },<br><br> hex_hmac_md5:function(key, data){ return this.binl2hex(this.core_hmac_md5(key, data)); },<br><br> hex_md5:function(s){return this.binl2hex(this.core_md5(this.str2binl(s), s.length * this.chrsz));},<br><br> md5:function(s){return(this.hex_md5(s));}, <P> md5_cmn:function(q, a, b, x, s, t){return this.safe_add(this.bit_rol(this.safe_add(this.safe_add(a, q), this.safe_add(x, t)), s),b);}, <P> md5_ff:function(a, b, c, d, x, s, t){return this.md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);}, <P> md5_gg:function(a, b, c, d, x, s, t){return this.md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);}, <P> md5_hh:function(a, b, c, d, x, s, t){return this.md5_cmn(b ^ c ^ d, a, b, x, s, t);}, <P> md5_ii:function(a, b, c, d, x, s, t){return this.md5_cmn(c ^ (b | (~d)), a, b, x, s, t);}, <P> md5_vm_test:function(){return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";},<br><br> safe_add:<BR> function(x, y){<BR> var lsw = (x & 0xFFFF) + (y & 0xFFFF);<BR> var msw = (x >> 16) + (y >> 16) + (lsw >> 16);<BR> return (msw << 16) | (lsw & 0xFFFF);<BR> },<br><br> str2binl:<BR> function(str){<BR> var bin = Array();<BR> var mask = (1 << this.chrsz) - 1;<BR> for(var i = 0; i < str.length * this.chrsz; i += this.chrsz)<BR> bin[i>>5] |= (str.charCodeAt(i / this.chrsz) & mask) << (i%32);<BR> return bin;<BR> }, <P> str_hmac_md5:function(key, data){ return binl2str(core_hmac_md5(key, data)); }, <P> str_md5:function(s){ return binl2str(core_md5(str2binl(s), s.length * this.chrsz));}<BR>}<BR></script>


Source:



Password:

Encoded:






将此源代码保存成HTML格式的文件,双击运行即可看到效果

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!