PHP md5 암호화의 대체 적용

WBOY
풀어 주다: 2016-07-25 09:04:36
원래의
897명이 탐색했습니다.
  1. //迭代算法
  2. function md5_1_1($data, $times = 32)
  3. {
  4. //循环使用MD5
  5. for ($i = 0; $i < $times; $i ) {
  6. $data = md5($data);
  7. }
  8. return $data;
  9. }
  10. //递归算法
  11. function md5_1_2($data, $times = 32)
  12. {
  13. if ($times > 0) {
  14. $data = md5($data);
  15. $times--;
  16. return md5_1_2($data, $times); //实现递归
  17. } else {
  18. return $data;
  19. }
  20. }
  21. ?>
复制代码

变换二:密文分割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 < 32; $i ) {
  20. $data .= md5($data{$i});
  21. }
  22. //这时$data长度为1024个字符,再进行一次MD5运算
  23. return md5($data);
  24. }
  25. ?>
复制代码

  变换三:附加字符串干涉

  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()函数,在用户信息加密上多作些功夫,可以减少更多的安全风险。



관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿