«

PHP加密解密的类

时间:2024-1-23 18:18     作者:韩俊     分类: PHP


分享一个php加密解密的类,在用户注册的时候发送邮件验证的时候估计会用的到的,代码如下。

class SysCrypt{
    private $crypt_key='http://www.maopiaopiao.com';//密钥
    public function __construct($crypt_key){
        $this->crypt_key=$crypt_key;
    }
    public function encrypt($txt){
        srand((double)microtime()*1000000);
        $encrypt_key=md5(rand(0,32000));
        $ctr=0;
        $tmp='';
        for($i=0;$i<strlen($txt);$i++){
            $ctr=$ctr==strlen($encrypt_key)?0:$ctr;
            $tmp.=$encrypt_key[$ctr].($txt[$i]^$encrypt_key[$ctr++]);
        }
        return base64_encode(self::__key($tmp,$this->crypt_key));
    }
    public function decrypt($txt){
        $txt=self::__key(base64_decode($txt),$this->crypt_key);
        $tmp='';
        for($i=0;$i<strlen($txt);$i++){
            $md5=$txt[$i];
            $tmp.=$txt[++$i]^$md5;
        }
        return $tmp;
    }
    private function __key($txt,$encrypt_key){
        $encrypt_key=md5($encrypt_key);
        $ctr=0;
        $tmp='';
        for($i=0;$i<strlen($txt);$i++){
            $ctr=$ctr==strlen($encrypt_key)?0:$ctr;
            $tmp.=$txt[$i]^$encrypt_key[$ctr++];
        }
        return $tmp;
    }
    public function __destruct(){
        $this->crypt_key=NULL;
    }
}

该类使用方法:

$sc=new SysCrypt('http://www.maopiaopiao.com');
$text='123456789@qq.com';
$test1=$sc->encrypt($text);
echo '原文:',$text;
echo '<br />';
echo '密文:',$test1;
echo "<br/>";
echo '解密:',$sc->decrypt($test1);

输出结果类似:

原文:123456789@qq.com
密文:VSQBZFRpVysCZFVlAWICYghKVGNQMwRkU31bZVFsV28=
解密:123456789@qq.com

标签: php php教程

热门推荐