javascript和JQuery焦点图和代码特效大全
当前最流行的开源CMS网站系统大全
当前位置:主页 > 编程开发 > PHP编程 >

PHP对MD5加密字符串的防破解技术

来源:IT技术网编辑:一页书发布于:2013-06-23人围观Php字符串技术加密md5

md5无疑是这个时代人们所最为津津乐道,最为常用的一项加密算法,其以加密强度颇大而著称,理论上通过穷举碰撞来猜解密文,需要很强悍的计算机昼夜不停的工作N久才能完成,所以MD5算法的使用范围极为广泛。 然而,在MD5流行的同时,人们也想出各种猜解手段来攻击MD5算法,例如:字典穷举、MD5crack,但其效率不高,成功率也很低,目前最有效的破解MD5算法的方法是查询,猜解的对象是针对会员密码!其原理就是将大量的口令收集起来,然后让他们与自己的MD5密文一一对应,需要的时候对其查询,得出原文,随着其收集数据量的增加,破解成功率是相当高!目前国内最大的专营此业务的网站是CMD5.COM,其数据库号称已达4T,也就是 4*1024G,4000G的数据!
 动网默认的管理员密码是admin888,其MD5值是7fef6171469e80d32c0559f88b377245,放到cmd5.com上,不到1秒钟即出来原文!
好的,我们把7fef6171469e80d32c0559f88b377245再MD5一次,即md5(md5('admin888'));得到的值是0b77520f93de693bdab0060746e38165,把这个值再拿到cmd5.com上去破解,过了很长时间,足有1分钟,提示“error!”,可以肯定没有破解成功!
这里我写了一个递归函数来增加强度。

<?php

$testStr='admin888';

$testC=10;

echo Xmd5($testStr,$testC);

function Xmd5($str,$c=0){

    if($c>0){

        $str=Xmd5(md5($str),--$c);

    }

    return $str;

}

?>

10次MD5,这样加密出来的串应该够强大了,如果我们用这个方法来为会员密码提供加密,然后让管理员可以在后台设置XMD5的次数,那这样的密文强度将大大提高! 经常用GET方法传递参数的时候,这里将 $testC=mt_rand(100,999); 这样或许对安全性也有一定的帮助!还有一个问题是,多次的MD5会不会影响脚本性能,因为要进行相当复杂的计算~我把'admin888'用md5加密了1000次,测试结果大概是这样:

79cbb81f5a6eb616b6897f61e7c76380
执行时间0.00805997848511 秒

测试结果显示,基本上属于正常范围,大可以放心使用。

Php,字符串,技术,相关的文章
有时间的话来看看IT界的突发事件