Javascript 스크립트는 정적 웹 페이지 암호화 예제 code_javascript 기술을 구현합니다.
Javascript 스크립트는 정적 웹 페이지 암호화를 구현합니다. 이틀 전에 누군가가 정적 웹 페이지 암호화에 관해 문의하는 것을 보고 다음과 같은 코드 아이디어를 작성했습니다. 암호화할 때: 먼저 사용자의 키를 암호화합니다. A와 md5를 B로 사용하고 B를 사용하여 소스 파일 S0을 XOR하여 대상 파일 S1을 얻고 S1을 js 변수에 저장합니다. 복호화 시 : 키를 요청한 후 암호화와 동일하게 동작
이틀전에 정적 웹페이지 암호화에 관해 문의하시는 분이 있어서 이렇게 코드를 작성했습니다
사물:
암호화 시: 먼저 md5를 사용하여 사용자 키 A부터 B까지 암호화한 다음 B를 사용하여 소스 파일 S0을 XOR하여 대상 파일 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>rnstrHTML="";rn";<br> for(var i=0;i 70<strSource.length;i =70){<BR> strOut ="strHTML =" " addSlash(strSource.substring(i,i 70)) "";rn";<BR> }<BR> strOut ="strHTML ="" addSlash(strSource.substring(i,strSource.length)) "";rn ";<BR> strOut =XOR "rn";<br><br> //아래 코드는 STR 객체를 로드합니다.<BR> strOut ="var STR =rn{rnthexcase : 0, /* 16진수 출력 형식. 0 - 소문자. ; 1 - ";<BR> strOut ="대문자 */rntb64pad : "", /* base-64 패드 문자 "=" for ";<BR> strOut ="엄격한 RFC 준수 */rntchrsz : 8, /* 입력 문자당 비트 수";<BR> strOut =". 8 - ASCII; 16 - 유니코드 */rntrntb64_hmac_md5:rnttfunction(key, ";<BR> strOut ="data) { return binl2b64(core_hmac_md5(key, data)); },rnttrntb64_md5:rn";<BR> strOut ="ttfunction(s){ return binl2b64(core_md5(str2binl(s), s.length * this.c";<BR> strOut ="hrsz));},rnttrntbinl2b64 :rnttfunction(binarray){rntt var tab = "ABCDE";<BR> strOut ="FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 /";rntt var";<BR> strOut =" str = "";rntt for(var i = 0; 나는 < binarray.length * 4; i = 3)rntt {";<BR> strOut ="rntt var 삼중항 = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) ";<br> strOut ="<< 16)rntt | (((binarray[i 1 >> 2] >> 8 * ((i 1)%4)) & ";<br> strOut ="0xFF) << 8 )rntt | ((binarray[i 2 >> 2] >> 8 * ((i 2)%";<br> strOut ="4)) & 0xFF);rntt for(var j = 0; j < 4; j )rntt {rntt if(i ";<BR> strOut ="* 8 j * 6 > binarray.length * 32) str = this.b64pad;rntt else ";<br> strOut ="str = tab .charAt((triplet >> 6*(3-j)) & 0x3F);rntt }rntt }rntt r";<br> strOut ="eturn str;rntt},rnttrntbinl2hex:rnttfunction(binarray){rntt var hex_t";<br> strOut ="ab = this.hexcase ? "0123456789ABCDEF": "0123456789abcdef";rntt var ";<br> strOut ="str = "";rntt for(var i = 0; i < binarray.length * 4; i )rntt {rntt";<BR> strOut =" str = hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 4)) & 0xF) rntt";<br> strOut =" hex_tab.charAt(( binarray[i>>2] >> ((i%4)*8 )) & 0xF);rntt ";<br> strOut =" }rntt return str;rntt},rntrntbinl2str:rnttfunction(bin){ rntt var st";<br> strOut ="r = "";rntt var 마스크 = (1 << this.chrsz) - 1;rntt for(var i = 0; i <";<BR> strOut =" bin.length * 32; i = this.chrsz)rntt str = String.fromCharCode((";<BR> strOut ="bin[i>>5] >>> (i % 32)) & 마스크);rntt return str;rntt},rnttrntbit_rol:";<br> strOut ="rnttfunction(num, cnt){return (num << cnt) | (num >>> (32 - cnt));},rn";<br> strOut ="ttrntcore_hmac_md5:rnttfunction(key, data){rntt var bkey = str2binl(k";<br> strOut =" ey);rntt if(bkey.length > 16) bkey = core_md5(bkey, key.length * this";<br> strOut =".chrsz);rnttrntt var ipad = Array(16), opad = Array(16) );rntt for(var";<br> strOut =" i = 0; i < 16; i )rntt {rntt ipad[i] = bkey[i] ^ 0x36363636;rntt";<BR> strOut =" opad [i] = bkey[i] ^ 0x5C5C5C5C;rntt }rnttrntt var hash = core_md";<BR> strOut ="5(ipad.concat(str2binl(data)), 512 data.length * this.chrsz);rntt r ";<BR> strOut ="eturn core_md5(opad.concat(hash), 512 128);rntt},\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> <p>function runCode(){<br> win=open("about:blank");<br> win.document.write(t2.value);<br> win.document.close();<br>}</p> <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> <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> <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><td align=center>";<br> strAskPass+="<b>Password:</b><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><td> </td></tr></table>";<br> document.write(strAskPass);<br>}</p> <p>var STR =<br>{<br> hexcase : 0, /* 16진수 출력 형식. 0 - 소문자; 1 - 대문자 */<br> b64pad : "", /* base-64 패드 문자. "=" 엄격한 RFC 준수를 위한 */<br> chrsz : 8, /* 입력 문자당 비트. 8 - ASCII; 16 - 유니코드 */<br><br> b64_hmac_md5:<br> function(key, data) { return binl2b64(core_hmac_md5(key, data)); },<br><br> b64_md5:<br> 함수{ return binl2b64(core_md5(str2binl(s), s.length * this.chrsz));},<br><br> binl2b64:<br> 함수(binarray){<br> var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 /";<br> var str = "";<br> for(var i = 0; i < binarray.length * 4; i = 3)<BR> {<BR> var 삼중항 = (((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((삼중항 >> 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 마스크 = (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)) & 마스크);<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> 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 :함수(들){return(this.hex_md5(s));},</P> <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> <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> <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> <P> md5_hh:function(a, b, c, d, x, s, t){return this.md5_cmn(b ^ c ^ d, a, b, x, s, t);},</P> <P> md5_ii:function(a, b, c, d, x, s, t){return this.md5_cmn(c ^ (b | (~d)), a, b, x, s, t);} ,</P> <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 마스크 = (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) & 마스크) << (i2);<BR> 반납함;<BR> },</P> <P> str_hmac_md5:function(키, 데이터){ return binl2str(core_hmac_md5(key, data)); },</P> <P> str_md5:function(s){ return binl2str(core_md5(str2binl(s), s.length * this.chrsz));}<BR>}<BR></script>
출처:
< b>비밀번호:<입력 유형=비밀번호 값=기본 id=p1><입력 유형=버튼 onclick="webEncode();" value="인코딩 시작">
인코딩됨:
<입력 유형=버튼 onclick="runCode();" value="코드 실행">
将此源代码保存成HTML格式的文件,双击运行即可看到效果

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









파일 암호화는 데이터 보안을 보다 효과적으로 보장하기 위해 전문가 수준의 데이터 암호화를 구현하는 것을 목표로 합니다! 올바른 암호화 키를 마스터해야만 해독 작업을 수행할 수 있어 정보 자산의 보안이 보장됩니다. 하지만 Win10 Home Edition의 파일 암호화 기능에는 아직 이 기능이 없습니다. Win10 Home Edition은 폴더를 암호화할 수 있습니까? 대답: Win10 Home Edition은 폴더를 암호화할 수 없습니다. Windows 시스템에서 파일 암호화 튜토리얼 1. 암호화하려는 파일 또는 폴더를 마우스 오른쪽 버튼으로 클릭한 후(또는 잠시 누르고 있음) "속성" 기능을 선택합니다. 2. 새로운 확장 인터페이스에서 '고급' 옵션을 찾아 들어가신 후 아래에 있는 '데이터를 보호하기 위해 콘텐츠 암호화' 옵션을 선택하세요. 3. 설정이 완료되면 "확인"을 클릭하여

Apple 휴대폰에서 사용자는 필요에 따라 사진 앨범을 암호화할 수 있습니다. 일부 사용자는 설정 방법을 모릅니다. 암호화해야 할 사진을 메모에 추가한 후 메모를 잠글 수 있습니다. 다음으로 관심 있는 사용자들을 위해 편집자가 모바일 사진 앨범 암호화 설정 방법을 소개합니다. Apple 휴대폰 튜토리얼 iPhone 사진 앨범 암호화 설정 방법 A: 암호화해야 할 사진을 메모에 추가한 후 자세한 소개를 위해 메모 잠금으로 이동합니다. 1. 사진 앨범에 들어가서 암호화해야 할 사진을 선택합니다. 암호화한 후 아래의 [추가]를 클릭하세요. 2. [메모에 추가]를 선택하세요. 3. 메모를 입력하고, 방금 작성한 메모를 찾아 입력한 후 오른쪽 상단의 [보내기] 아이콘을 클릭하세요. 4. 아래 [기기 잠금]을 클릭하세요.

폴더 암호화는 복호화 비밀번호를 아는 사람만 파일에 액세스할 수 있도록 폴더의 내용을 암호화하는 일반적인 데이터 보호 방법입니다. 폴더를 암호화할 때 파일을 압축하지 않고 비밀번호를 설정하는 몇 가지 일반적인 방법이 있습니다. 먼저, 운영 체제와 함께 제공되는 암호화 기능을 사용하여 폴더 비밀번호를 설정할 수 있습니다. Windows 사용자의 경우 다음 단계에 따라 설정할 수 있습니다. 암호화할 폴더를 선택하고 해당 폴더를 마우스 오른쪽 버튼으로 클릭한 후 "속성"을 선택합니다.

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

일부 친구는 파일을 보호하고 싶지만 win11 문서를 암호화하는 방법을 모릅니다. 실제로 폴더 암호화를 사용하거나 타사 소프트웨어를 사용하여 파일을 암호화할 수 있습니다. win11 문서 암호화에 대한 자세한 튜토리얼: 1. 먼저 암호화하려는 파일을 찾아 마우스 오른쪽 버튼으로 클릭하여 선택한 다음 "속성"을 엽니다. 2. 그런 다음 속성 열에서 "고급"을 클릭합니다. 3. "데이터를 보호하기 위해 콘텐츠 암호화"를 선택합니다. "를 클릭하고 "확인"을 클릭합니다. 4. 그런 다음 "확인"을 클릭하여 저장합니다. 5. 마지막으로 원하는 암호화 모드를 선택하고 "확인"을 눌러 문서를 암호화하여 저장합니다.

편집기에서는 세 가지 암호화 및 압축 방법을 소개합니다. 방법 1: 암호화 가장 간단한 암호화 방법은 파일을 암호화할 때 설정하려는 비밀번호를 입력하면 암호화 및 압축이 완료됩니다. 방법 2: 자동 암호화 일반 암호화 방법에서는 각 파일을 암호화할 때 비밀번호를 입력해야 합니다. 많은 수의 압축 패키지를 암호화하려는 경우 비밀번호가 동일하면 WinRAR에서 자동 암호화를 설정할 수 있습니다. 파일을 정상적으로 압축하면 WinRAR은 압축된 각 패키지에 비밀번호를 추가합니다. 방법은 다음과 같습니다: WinRAR을 열고 설정 인터페이스에서 옵션-설정을 클릭한 후 [압축]으로 전환하고 기본 구성 생성-비밀번호 설정을 클릭합니다. 여기에 설정하려는 비밀번호를 입력하고 확인을 클릭하여 설정을 완료합니다. 교정하다

JavaScript에서 HTTP 상태 코드를 얻는 방법 소개: 프런트 엔드 개발에서 우리는 종종 백엔드 인터페이스와의 상호 작용을 처리해야 하며 HTTP 상태 코드는 매우 중요한 부분입니다. HTTP 상태 코드를 이해하고 얻는 것은 인터페이스에서 반환된 데이터를 더 잘 처리하는 데 도움이 됩니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. HTTP 상태 코드란 무엇입니까? HTTP 상태 코드는 브라우저가 서버에 요청을 시작할 때 서비스가

CentOS는 vim/vi를 사용하여 파일을 암호화하고 해독합니다. 1. vim/vi를 사용하여 암호화합니다. 장점: 암호화 후 비밀번호를 모르면 루트 사용자를 포함하여 일반 텍스트를 볼 수 없습니다. 다른 사람들은 암호화를 알고 있으므로 다른 사람들이 콘텐츠 파괴 및 삭제를 포함하여 암호화된 파일을 파괴하는 것은 쉽습니다. vi에는 파일을 암호화하는 명령이 있습니다. root master /root/: [root@www~]#vim/vitext.txt2 디렉터리 아래에 실험용 파일 text.txt를 생성합니다. 편집 모드로 들어가서 내용을 입력한 후 ESC를 누르고 다음을 입력합니다. X(대문자 주의) X), 입력 3)
