首页  >  文章  >  后端开发  >  php md5加密的另类应用

php md5加密的另类应用

WBOY
WBOY原创
2016-07-25 09:04:36892浏览
  1. //迭代算法
  2. function md5_1_1($data, $times = 32)
  3. {
  4. //循环使用MD5
  5. for ($i = 0; $i $data = md5($data);
  6. }
  7. return $data;
  8. }
  9. //递归算法
  10. function md5_1_2($data, $times = 32)
  11. {
  12. if ($times > 0) {
  13. $data = md5($data);
  14. $times--;
  15. return md5_1_2($data, $times); //实现递归
  16. } else {
  17. return $data;
  18. }
  19. }
  20. ?>
复制代码

变换二:密文分割MD5

  1. //把密文分割成两段,每段16个字符
  2. function md5_2_1($data)
  3. {
  4. //先把密码加密成长度为32字符的密文
  5. $data = md5($data);
  6. //把密码分割成两段
  7. $left = substr($data, 0, 16);
  8. $right = substr($data, 16, 16);
  9. //分别加密后再合并
  10. $data = md5($left).md5($right);
  11. //最后把长字串再加密一次,成为32字符密文
  12. return md5($data);
  13. }
  14. //把密文分割成32段,每段1个字符
  15. function md5_2_2($data)
  16. {
  17. $data = md5($data);
  18. //循环地截取密文中的每个字符并进行加密、连接
  19. for ($i = 0; $i $data .= md5($data{$i});
  20. }
  21. //这时$data长度为1024个字符,再进行一次MD5运算
  22. return md5($data);
  23. }
  24. ?>
复制代码

  变换三:附加字符串干涉

  1. //附加字符串在原数据的尾部
  2. function md5_3_1($data, $append)
  3. {
  4. return md5($data.$append);
  5. }
  6. //附加字符串在原数据的头部
  7. function md5_3_2($data, $append)
  8. {
  9. return md5($append.$data);
  10. }
  11. //附加字符串在原数据的头尾
  12. function md5_3_3($data, $append)
  13. {
  14. return md5($append.$data.$append);
  15. }
  16. ?>
复制代码

变换四:大小写变换干涉 由于PHP所提供的md5()函数返回的密文中的英文字母全部都是小写的,因此我们可以把它们全部转为大写,然后再进行一次MD5运算。

  1. function md5_4($data)
  2. {
  3. //先得到密码的密文
  4. $data = md5($data);
  5. //再把密文中的英文母全部转为大写
  6. $data = strtotime($data);
  7. //最后再进行一次MD5运算并返回
  8. return md5($data);
  9. }
  10. ?>
复制代码

变换五:字符串次序干涉 把MD5运算后的密文字符串的顺序调转后,再进行一次MD5运算。

  1. function md5_5($data)
  2. {
  3. //得到数据的密文
  4. $data = md5($data);
  5. //再把密文字符串的字符顺序调转
  6. $data = strrev($data);
  7. //最后再进行一次MD5运算并返回
  8. return md5($data);
  9. }
  10. ?>
复制代码

用好php md5()函数,在用户信息加密上多作些功夫,可以减少更多的安全风险。



声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn