当前位置:首页 > PHP教程 > php类库 > 列表

PHP实现加强版加密解密类实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-14 20:42:52 浏览: 评论:0 

这篇文章主要介绍了PHP实现加强版加密解密类,实例分析了php加密解密的相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了PHP实现加强版加密解密类。分享给大家供大家参考。具体如下:

  1. <?php 
  2. class Ender{ 
  3.   private $enkey;//加密解密用的密钥 
  4.   private $rep_char='#'
  5.   //替换加密后的base64字符串中的=,因为=在有些场合是禁止使用的, 
  6.   //这里可以用一个允许的字符作为替换。 
  7.   //构造参数是密钥 
  8.   public function __construct($key=''){ 
  9.     if(!$key){ 
  10.       $this->enkey=$key
  11.     } 
  12.   } 
  13.   //设置密钥http://blog.ddian.cn 
  14.   public function set_key($key){ 
  15.     $this->enkey=$key
  16.   } 
  17.   private function keyED($txt,$encrypt_key)  
  18.   {  
  19.   $encrypt_key = md5($encrypt_key);  
  20.   $ctr=0;  
  21.   $tmp = "";  
  22.   for ($i=0;$i<strlen($txt);$i++)  
  23.   {  
  24.   if ($ctr==strlen($encrypt_key)) $ctr=0;  
  25.   $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);  
  26.   $ctr++;  
  27.   }  
  28.   return $tmp
  29.   } 
  30.   //加密字符串 
  31.   public function encrypt($txt,$key='')  
  32.   { 
  33.   if(!$key){ 
  34.     $key=$this->enkey; 
  35.   } 
  36.   srand((double)microtime()*1000000);  
  37.   $encrypt_key = md5(rand(0,32000));  
  38.   $ctr=0;  
  39.   $tmp = "";  
  40.   for ($i=0;$i<strlen($txt);$i++)  
  41.   {  
  42.   if ($ctr==strlen($encrypt_key)) $ctr=0;  
  43.   $tmp.= substr($encrypt_key,$ctr,1) .  
  44.   (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));  
  45.   $ctr++;  
  46.   } 
  47.   $r=base64_encode($this->keyED($tmp,$key)); 
  48.   $r=str_replace('=',$this->rep_char,$r); 
  49.   return $r;  
  50.   } 
  51.   //解密字符串 
  52.   public function decrypt($txt,$key='')  
  53.   { 
  54.   $txt=str_replace($this->rep_char,'=',$txt); 
  55.   $txt=base64_decode($txt); 
  56.   if(!$key){ 
  57.       $key=$this->enkey; 
  58.   } 
  59.   $txt = $this->keyED($txt,$key);  
  60.   $tmp = "";  
  61.   for ($i=0;$i<strlen($txt);$i++)  
  62.   {  
  63.   $md5 = substr($txt,$i,1);  
  64.   $i++;  
  65.   $tmp.= (substr($txt,$i,1) ^ $md5);  
  66.   }  
  67.   return $tmp;  
  68.   } 

希望本文所述对大家的php程序设计有所帮助。

Tags: PHP加密解密类

分享到:

相关文章