仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2837|回复: 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-2-4 13:15:00 | 显示全部楼层
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
因胸联盟 该用户已被删除
发表于 2015-2-9 23:18:39 | 显示全部楼层
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
第二个灵魂 该用户已被删除
发表于 2015-2-18 18:41:11 | 显示全部楼层
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
灵魂腐蚀 该用户已被删除
发表于 2015-2-27 10:19:12 | 显示全部楼层
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
山那边是海 该用户已被删除
 楼主| 发表于 2015-3-9 00:39:03 | 显示全部楼层
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
简单生活 该用户已被删除
发表于 2015-3-15 21:49:35 | 显示全部楼层
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
只想知道 该用户已被删除
发表于 2015-3-18 09:06:01 | 显示全部楼层
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
飘灵儿 该用户已被删除
发表于 2015-3-25 14:31:52 | 显示全部楼层
Ps:以上纯属原创,如有雷同,纯属巧合
爱飞 该用户已被删除
发表于 2015-4-1 11:11:15 | 显示全部楼层
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
admin 该用户已被删除
发表于 2015-4-8 10:15:55 | 显示全部楼层
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
精灵巫婆 该用户已被删除
发表于 2015-4-11 12:32:58 | 显示全部楼层
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
海妖 该用户已被删除
发表于 2015-4-15 02:07:47 | 显示全部楼层
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
若相依 该用户已被删除
发表于 2015-4-22 17:20:55 | 显示全部楼层
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
愤怒的大鸟 该用户已被删除
发表于 2015-5-4 14:18:58 | 显示全部楼层
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
飘飘悠悠 该用户已被删除
发表于 2015-6-18 21:27:08 | 显示全部楼层
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
蒙在股里 该用户已被删除
发表于 2015-6-22 07:47:58 | 显示全部楼层
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
再现理想 该用户已被删除
发表于 2015-7-10 02:08:57 | 显示全部楼层
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
变相怪杰 该用户已被删除
发表于 2015-7-23 00:41:53 | 显示全部楼层
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
分手快乐 该用户已被删除
发表于 2015-9-27 15:23:18 | 显示全部楼层
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-3-29 20:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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