文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHP 写的加密函数,支持私人密钥

PHP 写的加密函数,支持私人密钥

时间:2009-04-29  来源:windlike

在开发PHP系统时,会员部分往往是一个必不可少的模块,而密码的处理又是不得不面对的问题,PHP 的 Mcrypt 加密库又需要额外设置,很多人都 是直接使用md5()函数加密,这个方法的确安全,但是因为md5是不可逆加密,无法还原密码,因此也有一些不便之处,本文介绍加密函数支持私钥,用起来 还是不错的.

代码如下:
PHP:
  1.  
  2. <?php
  3. // 说明:PHP 写的加密函数,支持私人密钥
  4. // 整理:http://www.CodeBit.cn
  5.  
  6. function keyED($txt,$encrypt_key)
  7. {
  8. $encrypt_key = md5($encrypt_key);
  9. $ctr=0;
  10. $tmp = "";
  11. for ($i=0;$i<strlen($txt);$i++)
  12. {
  13. if ($ctr==strlen($encrypt_key)) $ctr=0;
  14. $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
  15. $ctr++;
  16. }
  17. return $tmp;
  18. }
  19.  
  20. function encrypt($txt,$key)
  21. {
  22. srand((double)microtime()*1000000);
  23. $encrypt_key = md5(rand(0,32000));
  24. $ctr=0;
  25. $tmp = "";
  26. for ($i=0;$i<strlen($txt);$i++)
  27. {
  28. if ($ctr==strlen($encrypt_key)) $ctr=0;
  29. $tmp.= substr($encrypt_key,$ctr,1) . (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
  30. $ctr++;
  31. }
  32. return keyED($tmp,$key);
  33. }
  34.  
  35. function decrypt($txt,$key)
  36. {
  37. $txt = keyED($txt,$key);
  38. $tmp = "";
  39. for ($i=0;$i<strlen($txt);$i++)
  40. {
  41. $md5 = substr($txt,$i,1);
  42. $i++;
  43. $tmp.= (substr($txt,$i,1) ^ $md5);
  44. }
  45. return $tmp;
  46. }
  47.  
  48. $key = "www.yitu.org";
  49. $string = "我是加密字符";
  50.  
  51. // encrypt $string, and store it in $enc_text
  52. $enc_text = encrypt($string,$key);
  53.  
  54. // decrypt the encrypted text $enc_text, and store it in $dec_text
  55. $dec_text = decrypt($enc_text,$key);
  56.  
  57. print "加密的 text : $enc_text <Br> ";
  58. print "解密的 text : $dec_text <Br> ";
  59. ?>
  60.  


每一次加密后的结果是不一样的,大大加强了密码的安全性.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载