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

PHP加密解密类加强版

PHP中文网
Freigeben: 2016-05-25 17:07:56
Original
1227 Leute haben es durchsucht

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; 
    }
        
}
Nach dem Login kopieren

                   

 以上就是PHP加密解密类加强版的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage