龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php-md5变换算法之密文分割MD5

时间:2014-07-22 14:52来源: 作者: 点击:
分享到:
尽管用户的密码是不确定的字符串,但是只要经过一次MD5运算后,就会得到一个由32个字符组成的字符串,这时可以再针对这个定长字符串变换。有点BT的算法是,把这段密文分割成若干
尽管用户的密码是不确定的字符串,但是只要经过一次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); 
} 
?> 
精彩图集

赞助商链接