加入收藏 | 设为首页 | 会员中心 | 我要投稿 孝感站长网 (https://www.0712zz.com.cn/)- 运营、云管理、管理运维、云计算、大数据!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-06-21 09:30:13 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了PHP实现加强版加密解密类,实例分析了php加密解密的相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了PHP实现加强版加密解密类。分享给大家供大家参考。具体如下: ?php class Ender{ private $enkey;//加密解密用的
  这篇文章主要介绍了PHP实现加强版加密解密类,实例分析了php加密解密的相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
 
  本文实例讲述了PHP实现加强版加密解密类。分享给大家供大家参考。具体如下:
 
  <?php
  class 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程序设计有所帮助。

(编辑:孝感站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读