Heim >php教程 >PHP源码 >PHP加密解密类加强版

PHP加密解密类加强版

PHP中文网
PHP中文网Original
2016-05-25 17:07:561192Durchsuche

PHP加密解密类加强版

<?php
class Ender{
    private $enkey;//加密解密用的密钥
    private $rep_char=&#39;#&#39;;//替换加密后的base64字符串中的=,因为=在有些场合是禁止使用的,
                          //这里可以用一个允许的字符作为替换。
    //构造参数是密钥
    public function __construct($key=&#39;&#39;){
        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=&#39;&#39;) 
    {
    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(&#39;=&#39;,$this->rep_char,$r);
    return $r; 
    }
    //解密字符串
    public function decrypt($txt,$key=&#39;&#39;) 
    {
    $txt=str_replace($this->rep_char,&#39;=&#39;,$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中文网(www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PDO类的封装Nächster Artikel:分页类尾部页码导航