当前位置:首页 > PHP教程 > php函数 > 列表

php自定义加密解决实现代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-23 13:52:27 浏览: 评论:0 

PHP 的 Mcrypt 加密库又需要额外设置,很多人都是直接使用md5()函数加密,这个方法的确安全,但是因为md5是不可逆加密,无法还原密码,因此也有一些不便之处,本文介绍加密函数支持私钥,用起来还是不错的.

php自定义加密解决实现代码如下:

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

Tags: php自定义 php加密代码

分享到: