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

PHP加密解密类加强版

PHP中文网
Libérer: 2016-05-25 17:07:56
original
1199 Les gens l'ont consulté

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; 
    }
        
}
Copier après la connexion

                   

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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal