操纵数据库来破解md5[网络技术]
本文“操纵数据库来破解md5[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
一个长度为4的纯小写字母生成的密码在数据库的帮忙下可以在0.005s内被破解.这个时间还包含了衔接数据库的时间,运行的环境是在我900MHZ的个人PC上.
注意,我们要谈论的是一种破解密码的思维,而不供应一种具体的办法.假如你的但愿和我们不一致,那么后边将不是你所需求的内容了.
前几天看MD5的资料时,我忽然冒出个设法:
假如借助数据库的海量存储和检索上风,破解较短长度的单向MD5应当不是很大的问题.
首先,我们假定密码长度为6的话(这是很多论坛采取的长度),假如密码都由小写字母构成的话,这个数据库要存储266条数据,每条数据的长度为6+40=46字节,那么这个数据库的大小是14210125696byte,大约为14G.关于一个大型数据库来说这样的数据量并不大.
为了使我的计算机可以对比快的实现我的设法,我假定密码长度为四位小写字母了.下边就让我们来看看历程.
我运行的环境:
Windows XP Pro,Apache1.3,MySql 3.23.49,PHP 4.0.6.
主频900MHZ,内存256M.
首先我在Mysql里成立了一个md库和一个md表用于存放密码和加密后的MD5字符.
表的构造以下:
然后通过程序来向里边增添数据:
<?php
// Connecting, selecting database
$link = mysql_connect("localhost", "root", "") or die("Could not connect");
print "Connected successfully<br>";
mysql_select_db("md") or die("Could not select database");
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$time_start = getmicrotime();
set_time_limit ( 0 );
echo '<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>md5</title>
<style>
<!--
html { font-family: Verdana; font-size: 9pt }
-->
</style>
</head>
<body>';
// create the password
for ($i = 97 ; $i < 123 ; $i++ )
{
for( $j = 97 ; $j < 123 ; $j++ )
{
for ( $k = 97 ; $k < 123 ; $k++ )
{
for( $l = 97 ; $l < 123 ; $l++ )
{
$name = chr($i).chr($j).chr($k).chr($l);
echo $name.' '.$md.'<br>';
$md = md5( $name );
mysql_query("INSERT INTO `md` (`pass`, `passmd`) VALUES ('$name', '$md');",$link);
}
}
}
}
$time_end = getmicrotime();
$time = $time_end - $time_start;
echo '<center>Runtime: '.$time.' seconds</center></font>';
echo '</body></html>';
?>
通过运行这个程序构建数据用掉了我大约五分钟的时间.
<?php
$link = mysql_connect("localhost", "root", "") or die("Could not connect");
print "Connected successfully<br>";
mysql_select_db("md") or die("Could not select database");
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
echo '<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>md5</title>
<style>
<!--
html { font-family: Verdana; font-size: 9pt }
INPUT {
BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; FONT-FAMILY: Verdana
}
-->
</style>
</head>
<body>';
$time_start = getmicrotime();
set_time_limit ( 0 );
以上是“操纵数据库来破解md5[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:实现捆绑传染的思绪
- ·下一篇文章:SYN攻击基本原理与防备技术二
- ·中查找“操纵数据库来破解md5”更多相关内容
- ·中查找“操纵数据库来破解md5”更多相关内容