仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2923|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页设计利用MD5变换算法防穷举(抵触触犯)破译暗码

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:30:26 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大部分语言的基础,不是说c有多好,而是c相对起手容易学,让你认为这个是编程语言,换算|算法       MD5是在Web使用法式中最经常使用的暗码加密算法。因为MD5是不成逆的,因此经由MD5盘算失掉后的密文,不克不及经由过程逆向算法失掉原文。

  回忆在Web使用法式中利用MD5加密文本暗码的初志,就是为了避免数据库中保留的暗码不幸泄漏后被直接取得。但进击者不仅具有数据量伟大的暗码字典,并且创立了良多MD5原文/密文对比数据库,能疾速地找到经常使用暗码的MD5密文,是破译MD5密文的高效路子。但是,MD5密文数据库所利用的是最惯例的MD5加密算法:原文-->MD5-->密文。因而,咱们可使用变换的MD5算法,使现成的MD5密文数据库碌碌无为。


  上面演示一些变换算法的例子
      固然,在其它的Web开辟言语中,也迥然不同,完整能失掉不异的了局。

变换一:轮回MD5

  最轻易了解的变换就是对一个暗码停止屡次的MD5运算。自界说一个函数,它承受$data和$times两个形参,第一个是要加密的暗码,第二个是反复加密的次数。完成这类变换有两种算法――

<?php
//迭代算法
function md5_1_1($data, $times = 32)
{
    //轮回利用MD5
    for ($i = 0; $i < $times; $i++) {
        $data = md5($data);
    }
    return $data;
}

//递归算法
function md5_1_2($data, $times = 32)
{
    if ($times > 0) {
        $data = md5($data);
        $times--;
        return md5_1_2($data, $times); //完成递归
    } else {
        return $data;
    }
}
?>

变换二:密文朋分MD5

  虽然用户的暗码是不肯定的字符串,然而只需经由一次MD5运算后,就会失掉一个由32个字符构成的字符串,这时候可以再针对这个定长字符串变换。有点BT的算法是,把这段密文朋分成若干段,对每段都停止一次MD5运算,然后把这堆密文连成一个超长的字符串,最初再停止一次MD5运算,失掉依然是长度为32位的密文。

<?php
//把密文朋分成两段,每段16个字符
function md5_2_1($data)
{
    //先把暗码加密生长度为32字符的密文
    $data =  md5($data);
    //把暗码朋分成两段
    $left = substr($data, 0, 16);
    $right = substr($data, 16, 16);
    //分离加密后再兼并
    $data = md5($left).md5($right);
    //最初把长字串再加密一次,成为32字符密文
    return md5($data);
}

//把密文朋分成32段,每段1个字符
function md5_2_2($data)
{
    $data =  md5($data);
    //轮回地截取密文中的每一个字符并停止加密、毗连
    for ($i = 0; $i < 32; $i++) {
        $data .= md5($data{$i});
    }
    //这时候$data长度为1024个字符,再停止一次MD5运算
    return md5($data);
}
?>

  固然,这类密文朋分的详细算法是数之不尽的,好比可以把原密文朋分成16段每段两字符、8段每段4字符,或每段的字符数不相等……


[1] [2] 下一页  

  终于学会把表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。
山那边是海 该用户已被删除
沙发
 楼主| 发表于 2015-3-9 00:39:03 | 显示全部楼层
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-31 05:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表