Javascript脚本实现静态网页加密实例代码_javascript技巧
Javascript脚本实现静态网页加密,阅读Javascript脚本实现静态网页加密,前两天看见有人问静态网页加密问题,就写了这个代码思路:加密时:先把用户的密钥A用md5加密为B,然后用B异或源文件S0得到目标文件S1,把S1存入js变量中。解密时:询问密钥,然后操作同加密
前两天看见有人问静态网页加密问题,就写了这个代码
思路:
加密时:先把用户的密钥A用md5加密为B,然后用B异或源文件S0得到目标文件S1,把S1存入js变量中。
解密时:询问密钥,然后操作同加密。
因为用了md5,个人认为没有密钥的时候是无法破解的(暴力除外)
大家试用一下哈哈:
源代码如下:
<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格式的文件,双击运行即可看到效果

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penyulitan fail bertujuan untuk melaksanakan penyulitan data peringkat profesional untuk memastikan keselamatan data dengan lebih berkesan! Hanya dengan menguasai kunci penyulitan yang betul, operasi penyahsulitan boleh dilakukan, memastikan keselamatan aset maklumat. Walau bagaimanapun, fungsi penyulitan fail Win10 Home Edition belum lagi mempunyai ciri ini. Bolehkah Win10 Home Edition menyulitkan folder Jawapan: Win10 Home Edition tidak boleh menyulitkan folder. Tutorial menyulitkan fail dalam sistem Windows 1. Klik kanan pada fail atau folder yang ingin anda sulitkan (atau tekan dan tahan seketika), dan kemudian pilih fungsi "Properties". 2. Dalam antara muka yang diperluaskan baharu, cari pilihan "Lanjutan" Selepas mengklik untuk masuk, ingat untuk menyemak pilihan "Sulitkan kandungan untuk melindungi data" yang terdapat di bawah. 3. Selepas tetapan selesai, klik "OK" untuk

Dalam telefon bimbit Apple, pengguna boleh menyulitkan album foto mengikut keperluan mereka sendiri. Sesetengah pengguna tidak tahu cara menyediakannya. Anda boleh menambah gambar yang perlu disulitkan ke memo, dan kemudian mengunci memo Seterusnya, editor akan memperkenalkan kaedah menyediakan penyulitan album foto mudah alih untuk pengguna yang berminat, datang dan lihat. Tutorial telefon bimbit Apple Bagaimana untuk menyediakan penyulitan album foto pada telefon bimbit Apple Jawapan: Selepas menambah gambar yang perlu disulitkan pada memo, pergi ke kunci memo untuk pengenalan terperinci: 1. Masukkan album foto, pilih gambar yang perlu disulitkan, dan kemudian klik [Tambah ke] di bawah. 2. Pilih [Tambah pada Nota]. 3. Masukkan memo, cari memo yang baru anda buat, masukkannya dan klik ikon [Hantar] di penjuru kanan sebelah atas. 4. Klik [Kunci Peranti] di bawah

Penyulitan folder ialah kaedah perlindungan data biasa yang menyulitkan kandungan folder supaya hanya mereka yang mempunyai kata laluan penyahsulitan boleh mengakses fail. Apabila menyulitkan folder, terdapat beberapa cara biasa untuk menetapkan kata laluan tanpa memampatkan fail. Pertama, kita boleh menggunakan fungsi penyulitan yang disertakan dengan sistem pengendalian untuk menetapkan kata laluan folder. Untuk pengguna Windows, anda boleh menyediakannya dengan mengikuti langkah berikut: Pilih folder untuk disulitkan, klik kanan folder dan pilih "Properties"

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Sesetengah rakan ingin melindungi fail mereka, tetapi tidak tahu cara menyulitkan dokumen win11 Malah, kami boleh terus menggunakan penyulitan folder atau menggunakan perisian pihak ketiga untuk menyulitkan fail. Tutorial terperinci mengenai penyulitan dokumen win11: 1. Mula-mula cari fail yang ingin anda enkripsi, klik kanan dan pilihnya, buka "Properties" 2. Kemudian klik "Advanced" dalam lajur sifat 3. Pilih "Encrypt content to protect data" dalam Advanced dan klik " OK" 4. Kemudian klik "OK" untuk menyimpan. 5. Akhir sekali, pilih mod penyulitan yang dikehendaki dan "OK" untuk menyimpan dokumen untuk menyulitkan dokumen.

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut

Editor akan memperkenalkan kepada anda tiga kaedah penyulitan dan pemampatan: Kaedah 1: Penyulitan Kaedah penyulitan paling mudah ialah memasukkan kata laluan yang anda ingin tetapkan semasa menyulitkan fail, dan penyulitan dan pemampatan selesai. Kaedah 2: Penyulitan automatik Kaedah penyulitan biasa memerlukan kami memasukkan kata laluan semasa menyulitkan setiap fail Jika anda ingin menyulitkan sejumlah besar pakej termampat dan kata laluan adalah sama, maka kami boleh menetapkan penyulitan automatik dalam WinRAR, dan kemudian hanya Apabila. memampatkan fail seperti biasa, WinRAR akan menambah kata laluan pada setiap pakej yang dimampatkan. Kaedahnya adalah seperti berikut: Buka WinRAR, klik Options-Settings dalam antara muka tetapan, tukar ke [Compression], klik Create Default Configuration-Set Password Masukkan kata laluan yang ingin kita tetapkan di sini, klik OK untuk melengkapkan tetapan, kita hanya perlu untuk memperbetulkan

CentOS menggunakan vim/vi untuk menyulitkan dan menyahsulit fail 1. Gunakan vim/vi untuk menyulitkan: Kelebihan: Selepas penyulitan, jika anda tidak mengetahui kata laluan, anda tidak boleh melihat teks biasa, termasuk pengguna akar Kelemahan: Jelas bahawa orang lain; mengetahui penyulitan, mudah bagi orang lain untuk memusnahkan fail yang disulitkan, termasuk pemusnahan dan pemadaman kandungan. Saya percaya semua orang sudah biasa dengan editor vi. Contohnya: 1) Pertama, dalam induk akar Cipta fail eksperimen text.txt di bawah direktori /root/: [root@www~]#vim/vitext.txt2) Masukkan mod pengeditan, tekan ESC selepas memasukkan kandungan, dan kemudian masukkan: X (perhatikan huruf besar X), Masukkan;
