分享一个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