站内搜索

PHP实现加强版加密解密类实例_php技巧

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

<?phpclass Ender{  private $enkey;//加密解密用的密钥  private $rep_char='#';  //替换加密后的base64字符串中的=,因为=在有些场合是禁止使用的,  //这里可以用一个允许的字符作为替换。  //构造参数是密钥  public function __construct($key=''){    if(!$key){      $this->enkey=$key;    }  }  //设置密钥http://blog.ddian.cn  public function set_key($key){    $this->enkey=$key;  }  private function keyED($txt,$encrypt_key)   {   $encrypt_key = md5($encrypt_key);   $ctr=0;   $tmp = "";   for ($i=0;$i<strlen($txt);$i++)   {   if ($ctr==strlen($encrypt_key)) $ctr=0;   $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);   $ctr++;   }   return $tmp;  }  //加密字符串  public function encrypt($txt,$key='')   {  if(!$key){    $key=$this->enkey;  }  srand((double)microtime()*1000000);   $encrypt_key = md5(rand(0,32000));   $ctr=0;   $tmp = "";   for ($i=0;$i<strlen($txt);$i++)   {   if ($ctr==strlen($encrypt_key)) $ctr=0;   $tmp.= substr($encrypt_key,$ctr,1) .   (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));   $ctr++;   }  $r=base64_encode($this->keyED($tmp,$key));  $r=str_replace('=',$this->rep_char,$r);  return $r;   }  //解密字符串  public function decrypt($txt,$key='')   {  $txt=str_replace($this->rep_char,'=',$txt);  $txt=base64_decode($txt);  if(!$key){      $key=$this->enkey;  }  $txt = $this->keyED($txt,$key);   $tmp = "";   for ($i=0;$i<strlen($txt);$i++)   {   $md5 = substr($txt,$i,1);   $i++;   $tmp.= (substr($txt,$i,1) ^ $md5);   }   return $tmp;   }}

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

  • 上一篇:php实现过滤字符串中的中文和数字实例_php技巧
  • 下一篇:PHP实现简单搜歌的方法_php技巧