- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <meta http-equiv="Content-Language" content="zh-CN" />
- <meta name="author" content="hezhiwu5@163.com" />
- <style>
- *{font-family:宋体;font-size:10pt}
- body{text-align:center}
- .txt{border:1px groove gray}
- </style>
- <title>破解md5加密扫描程序(适合扫描弱密码)</title>
- </head>
- <body bgcolor="silver">
- <script language="JavaScript">
- var sAscii = " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- var sAscii = sAscii + "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
- var sHex = "0123456789ABCDEF";
- function hex(i) {
- h = "";
- for(j = 0; j <= 3; j++) {
- h += sHex.charAt((i >> (j * 8 + 4)) & 0x0F) +
- sHex.charAt((i >> (j * 8)) & 0x0F);
- }
- return h;
- }
- function add(x, y) {
- return ((x&0x7FFFFFFF) + (y&0x7FFFFFFF)) ^ (x&0x80000000) ^ (y&0x80000000);
- }
- function R1(A, B, C, D, X, S, T) {
- q = add(add(A, (B & C) | (~B & D)), add(X, T));
- return add((q << S) | ((q >> (32 - S)) & (Math.pow(2, S) - 1)), B);
- }
- function R2(A, B, C, D, X, S, T) {
- q = add(add(A, (B & D) | (C & ~D)), add(X, T));
- return add((q << S) | ((q >> (32 - S)) & (Math.pow(2, S) - 1)), B);
- }
- function R3(A, B, C, D, X, S, T) {
- q = add(add(A, B ^ C ^ D), add(X, T));
- return add((q << S) | ((q >> (32 - S)) & (Math.pow(2, S) - 1)), B);
- }
- function R4(A, B, C, D, X, S, T) {
- q = add(add(A, C ^ (B | ~D)), add(X, T));
- return add((q << S) | ((q >> (32 - S)) & (Math.pow(2, S) - 1)), B);
- }
- function calcMD5(sInp) {
- wLen = (((sInp.length + 8) >> 6) + 1) << 4;
- var X = new Array(wLen);
- j = 4;
- for (i = 0; (i * 4) < sInp.length; i++) {
- X[i] = 0;
- for (j = 0; (j < 4) && ((j + i * 4) < sInp.length); j++) {
- X[i] += (sAscii.indexOf(sInp.charAt((i * 4) + j)) + 32) << (j * 8);
- }
- }
- if (j == 4) {
- X[i++] = 0x80;
- }
- else {
- X[i - 1] += 0x80 << (j * 8);
- }
- for(; i < wLen; i++) {
- X[i] = 0;
- }
- X[wLen - 2] = sInp.length * 8;
- a = 0x67452301;
- b = 0xefcdab89;
- c = 0x98badcfe;
- d = 0x10325476;
- for (i = 0; i < wLen; i += 16) {
- aO = a;
- bO = b;
- cO = c;
- dO = d;
- a = R1(a, b, c, d, X[i+ 0], 7 , 0xd76aa478);
- d = R1(d, a, b, c, X[i+ 1], 12, 0xe8c7b756);
- c = R1(c, d, a, b, X[i+ 2], 17, 0x242070db);
- b = R1(b, c, d, a, X[i+ 3], 22, 0xc1bdceee);
- a = R1(a, b, c, d, X[i+ 4], 7 , 0xf57c0faf);
- d = R1(d, a, b, c, X[i+ 5], 12, 0x4787c62a);
- c = R1(c, d, a, b, X[i+ 6], 17, 0xa8304613);
- b = R1(b, c, d, a, X[i+ 7], 22, 0xfd469501);
- a = R1(a, b, c, d, X[i+ 8], 7 , 0x698098d8);
- d = R1(d, a, b, c, X[i+ 9], 12, 0x8b44f7af);
- c = R1(c, d, a, b, X[i+10], 17, 0xffff5bb1);
- b = R1(b, c, d, a, X[i+11], 22, 0x895cd7be);
- a = R1(a, b, c, d, X[i+12], 7 , 0x6b901122);
- d = R1(d, a, b, c, X[i+13], 12, 0xfd987193);
- c = R1(c, d, a, b, X[i+14], 17, 0xa679438e);
- b = R1(b, c, d, a, X[i+15], 22, 0x49b40821);
- a = R2(a, b, c, d, X[i+ 1], 5 , 0xf61e2562);
- d = R2(d, a, b, c, X[i+ 6], 9 , 0xc040b340);
- c = R2(c, d, a, b, X[i+11], 14, 0x265e5a51);
- b = R2(b, c, d, a, X[i+ 0], 20, 0xe9b6c7aa);
- a = R2(a, b, c, d, X[i+ 5], 5 , 0xd62f105d);
- d = R2(d, a, b, c, X[i+10], 9 , 0x2441453);
- c = R2(c, d, a, b, X[i+15], 14, 0xd8a1e681);
- b = R2(b, c, d, a, X[i+ 4], 20, 0xe7d3fbc8);
- a = R2(a, b, c, d, X[i+ 9], 5 , 0x21e1cde6);
- d = R2(d, a, b, c, X[i+14], 9 , 0xc33707d6);
- c = R2(c, d, a, b, X[i+ 3], 14, 0xf4d50d87);
- b = R2(b, c, d, a, X[i+ 8], 20, 0x455a14ed);
- a = R2(a, b, c, d, X[i+13], 5 , 0xa9e3e905);
- d = R2(d, a, b, c, X[i+ 2], 9 , 0xfcefa3f8);
- c = R2(c, d, a, b, X[i+ 7], 14, 0x676f02d9);
- b = R2(b, c, d, a, X[i+12], 20, 0x8d2a4c8a);
- a = R3(a, b, c, d, X[i+ 5], 4 , 0xfffa3942);
- d = R3(d, a, b, c, X[i+ 8], 11, 0x8771f681);
- c = R3(c, d, a, b, X[i+11], 16, 0x6d9d6122);
- b = R3(b, c, d, a, X[i+14], 23, 0xfde5380c);
- a = R3(a, b, c, d, X[i+ 1], 4 , 0xa4beea44);
- d = R3(d, a, b, c, X[i+ 4], 11, 0x4bdecfa9);
- c = R3(c, d, a, b, X[i+ 7], 16, 0xf6bb4b60);
- b = R3(b, c, d, a, X[i+10], 23, 0xbebfbc70);
- a = R3(a, b, c, d, X[i+13], 4 , 0x289b7ec6);
- d = R3(d, a, b, c, X[i+ 0], 11, 0xeaa127fa);
- c = R3(c, d, a, b, X[i+ 3], 16, 0xd4ef3085);
- b = R3(b, c, d, a, X[i+ 6], 23, 0x4881d05);
- a = R3(a, b, c, d, X[i+ 9], 4 , 0xd9d4d039);
- d = R3(d, a, b, c, X[i+12], 11, 0xe6db99e5);
- c = R3(c, d, a, b, X[i+15], 16, 0x1fa27cf8);
- b = R3(b, c, d, a, X[i+ 2], 23, 0xc4ac5665);
- a = R4(a, b, c, d, X[i+ 0], 6 , 0xf4292244);
- d = R4(d, a, b, c, X[i+ 7], 10, 0x432aff97);
- c = R4(c, d, a, b, X[i+14], 15, 0xab9423a7);
- b = R4(b, c, d, a, X[i+ 5], 21, 0xfc93a039);
- a = R4(a, b, c, d, X[i+12], 6 , 0x655b59c3);
- d = R4(d, a, b, c, X[i+ 3], 10, 0x8f0ccc92);
- c = R4(c, d, a, b, X[i+10], 15, 0xffeff47d);
- b = R4(b, c, d, a, X[i+ 1], 21, 0x85845dd1);
- a = R4(a, b, c, d, X[i+ 8], 6 , 0x6fa87e4f);
- d = R4(d, a, b, c, X[i+15], 10, 0xfe2ce6e0);
- c = R4(c, d, a, b, X[i+ 6], 15, 0xa3014314);
- b = R4(b, c, d, a, X[i+13], 21, 0x4e0811a1);
- a = R4(a, b, c, d, X[i+ 4], 6 , 0xf7537e82);
- d = R4(d, a, b, c, X[i+11], 10, 0xbd3af235);
- c = R4(c, d, a, b, X[i+ 2], 15, 0x2ad7d2bb);
- b = R4(b, c, d, a, X[i+ 9], 21, 0xeb86d391);
- a = add(a, aO);
- b = add(b, bO);
- c = add(c, cO);
- d = add(d, dO);
- }
- return hex(a) + hex(b) + hex(c) + hex(d);
- }
- function starscan()
- {
- if (!/^[\w]{32}$/g.test(text1.value))
- {
- alert("32位md5密文输入错误!!");
- text1.focus();
- }
- else
- {
- if (document.all("pswc")[0].value=="aa" && document.all("pswc")[0].checked==true)
- {
- baa.innerText="数字扫描密码";
- numberscan();
- }
- else if (document.all("pswc")[1].value=="bb" && document.all("pswc")[1].checked==true)
- {
- baa.innerText="字母扫描密码";
- pword()
- }
- else if (document.all("pswc")[2].value=="cc" && document.all("pswc")[2].checked==true)
- {
- baa.innerText="字母和数字混合扫描密码";
- numberandaz()
- }
- else if (document.all("pswc")[3].value=="dd" && document.all("pswc")[3].checked==true)
- {
- baa.innerText="随机扫描密码";
- randompsw()
- }
- else if (document.all("pswc")[4].value=="ee" && document.all("pswc")[4].checked==true)
- {
- baa.innerText="自定义扫描密码";
- alert("制作中...");
- }
- else
- {
- baa.innerText="发现未知错误";
- }
- bbb.innerText=text1.value.toLocaleUpperCase();
- divstatus.style.display="";
- alldiv.style.display="none";
- timeinter=setInterval("bee.innerText++",1000);
- }
- }
- var p=-1;
- function numberscan() //数字
- {
- p++;
- var str=calcMD5(p.toString());
- bcc.innerText=str;
- bdd.innerText=p;
- stopnumberscan=setTimeout("numberscan()",5);
- if (bbb.innerText==str)
- {
- alert("恭喜你!!密码成功扫描出来!!!密码是:"+p);
- clearTimeout(stopnumberscan);
- clearTimeout(timeinter);
- }
- }
- function numberandaz() //数字和字母
- {
- p++;
- var str=calcMD5(p.toString(36));
- bcc.innerText=str;
- bdd.innerText=p.toString(36);
- stopnumberscan=setTimeout("numberandaz()",5);
- if (bbb.innerText==str)
- {
- alert("恭喜你!!密码成功扫描出来!!!密码是:"+bdd.innerText);
- clearTimeout(stopnumberscan);
- clearTimeout(timeinter);
- }
- }
- function randompsw() //随机
- {
- var a=Math.floor(Math.random()*2);
- var b=Math.floor(Math.random()*4);
- if (b==1)
- {
- var n=Math.floor(Math.random()*999999999999999999);
- }
- else if (b==2)
- {
- var n=Math.floor(Math.random()*99999999999999);
- }
- else if (b==3)
- {
- var n=Math.floor(Math.random()*9999999999);
- }
- else if (b==4)
- {
- var n=Math.floor(Math.random()*999999);
- }
- else
- {
- var n=Math.floor(Math.random()*999);
- }
- if (a==1)
- {
- n=n.toString(36).toUpperCase();
- }
- else
- {
- n=n.toString(36);
- }
- var str=calcMD5(n);
- bcc.innerText=str;
- bdd.innerText=n;
- stopnumberscan=setTimeout("randompsw()",5);
- if (bbb.innerText==str)
- {
- alert("恭喜你!!密码成功扫描出来!!!密码是:"+bdd.innerText);
- clearTimeout(stopnumberscan);
- clearTimeout(timeinter);
- }
- }
- function pword() //字母
- {
- p++;
- n=p.toString(27).toUpperCase();
- n=n.replace(/0/g,"a");
- n=n.replace(/1/g,"a");
- n=n.replace(/2/g,"b");
- n=n.replace(/3/g,"c");
- n=n.replace(/4/g,"d");
- n=n.replace(/5/g,"e");
- n=n.replace(/6/g,"f");
- n=n.replace(/7/g,"g");
- n=n.replace(/8/g,"h");
- n=n.replace(/9/g,"i");
- n=n.replace(/A/g,"j");
- n=n.replace(/B/g,"k");
- n=n.replace(/C/g,"l");
- n=n.replace(/D/g,"m");
- n=n.replace(/E/g,"n");
- n=n.replace(/F/g,"o");
- n=n.replace(/G/g,"p");
- n=n.replace(/H/g,"q");
- n=n.replace(/I/g,"r");
- n=n.replace(/J/g,"s");
- n=n.replace(/K/g,"t");
- n=n.replace(/L/g,"u");
- n=n.replace(/M/g,"v");
- n=n.replace(/N/g,"w");
- n=n.replace(/O/g,"x");
- n=n.replace(/P/g,"y");
- n=n.replace(/Q/g,"z");
- var str=calcMD5(n);
- bcc.innerText=str;
- bdd.innerText=n;
- stopnumberscan=setTimeout("pword()",5);
- if (bbb.innerText==str)
- {
- alert("恭喜你!!密码成功扫描出来!!!密码是:"+bdd.innerText);
- clearTimeout(stopnumberscan);
- clearTimeout(timeinter);
- }
- }
- function ranw()
- {
- alert("当前猜测尝试密文:"+bcc.innerText+"\n"+"当前猜测尝试密码:"+bdd.innerText);
- }
- </script>
- <div id="alldiv">
- <div>请输入32位md5密文:<INPUT TYPE="text" id="text1" size="40" class="txt" onfocus="style.background='#fffff0'" onblur="style.background=''"></div>
- <div style="width:200;text-align:left;background:#FFCCFF;">
- <span style="background:pink;padding:8;width:200;text-align:center;color:maroon;font-weight:bold;letter-spacing:5">扫描密码选项</span><br /><br />
- <input type="radio" value="aa" name="pswc" checked=true><label onclick="pswc[0].checked=true">数字扫描密码</label>
- <input type="radio" value="bb" name="pswc"><label onclick="pswc[1].checked=true">字母扫描密码</label>
- <input type="radio" value="cc" name="pswc"><label onclick="pswc[2].checked=true">字母和数字混合扫描密码</label>
- <input type="radio" value="dd" name="pswc"><label onclick="pswc[3].checked=true">随机扫描密码</label>
- <input type="radio" value="ee" name="pswc"><label onclick="pswc[4].checked=true">自定义扫描密码</label>
- <span style="background:pink;padding:8;width:200;text-align:center;"><button onclick="starscan();" id="scanbu">开始扫描密码</button></span>
- </div>
- </div>
- <!--扫描状态图层-->
- <div style="border:1px solid gray;width:400px;display:none" id="divstatus">
- <span style="width:400px;background:pink;font-weight:bold;font-size:11pt;padding:3">破解md5加密扫描状态</span>
- <span style="text-align:left;width:400px;padding:5;background:#fffff0;">
- 密码扫描选项:<span id="baa" style="color:red"> </span>
- 当前要破解的密文:<span id="bbb" style="color:red"> </span><br />
- 当前猜测尝试密文:<span id="bcc" style="color:red"> </span>
- 当前猜测尝试密码:<span id="bdd" style="color:red"> </span>
- 已扫描时间:<span id="bee" style="color:red">0</span>秒
- </span>
- <span style="width:400px;background:pink;padding:3">
- <button onclick="location.reload(true)">重来</button>
- <button onclick="ranw()">暂停</button>
- <button onclick="helpdiv.style.display=''">帮助</button>
- </span>
- </div>
- <div style="width:500px;padding:3px;border:3px maroon groove;position:absolute;top:10;left:250px;background:#fffff0" id="helpdiv">
- <span style="background:pink;padding:5;width:500;text-align:center;color:maroon;font-weight:bold;letter-spacing:5">说明帮助</span><br /><br />
- <ul style="text-align:left;line-height:20px">
- <li>此程序只适合用于扫描弱密码,如:密码全部是数字或密码位数很短等都属于弱密码</li>
- <li>破解的时间长短取决于密码的位数和你是否选择正确的扫描方式</li>
- <li>此程序每秒可扫描60个密码,如果你的密码是三位数字的。。三位数字只有10*10*10=1000个密码组合,即最长只用1000/60=16秒钟就可以扫描出任何的三位数字密码。。其它的情况于此类推</li>
- <li>以下的几种情况将无法破解密码:1)你选择数字扫描密码,但密码中有字母时,2)你选择字母扫描密码,密码只是由数字组成时。。3)密码中含有特殊字符时将无法破解。。4)密码中有大写字母,你选择非随机扫描密码时。。。5)以后想到再说了。</li>
- <li>制作:hezhiwu5@163.com............2006-5-15。。。。下一个版本将解决以上提到的所有问题。。。等有时间和心情好了再说</li>
- </ul>
- <button onclick="helpdiv.style.display='none'">已阅以上你乱写的废话</button>
- </div>
- </body>
- </html>
复制代码
|
上一篇: MD5加密算法在网站数据库安全方面的应用与查表攻击下一篇: gq.qqwlz.com申请免费空间-我是2B
|