php加密解密類的實(shí)現(xiàn)代碼

字號(hào):


    class Crypt{
    // 本文來源:龍哥博客
    protected $key = “”; //公鑰
    private function keyED($txt,$encrypt_key)
    {
    $encrypt_key = md5($encrypt_key);
    $ctr=0;
    $tmp = “”;
    for ($i=0;$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=”")
    {
    if(empty($key)){
    $key=$this->key;
    }
    srand((double)microtime()*1000000);
    $encrypt_key = md5(rand(0,32000));
    $ctr=0;
    $tmp = “”;
    for ($i=0;$i
    {
    if ($ctr==strlen($encrypt_key)){
    $ctr=0;
    }
    $tmp.= substr($encrypt_key,$ctr,1) .
    (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
    $ctr++;
    }
    return $this->keyED($tmp,$key);
    }
    public function decrypt($txt,$key=”")
    {
    if(empty($key)){
    $key=$this->key;
    }
    $txt = $this->keyED($txt,$key);
    $tmp = “”;
    for ($i=0;$i
    {
    $md5 = substr($txt,$i,1);
    $i++;
    $tmp.= (substr($txt,$i,1) ^ $md5);
    }
    return $tmp;
    }
    public function setKey($key)
    {
    if(empty($key)){
    return null;
    }
    $this->key=$key;
    }
    public function getKey()
    {
    return $this->key;
    }
    // Downloads By
    }
    $string = “http://www.52blogger.com”;
    $crypt= new Crypt();
    $crypt->setKey(“http://www.52blogger.com”);
    $enc_text = $crypt->encrypt($string,$crypt->getKey());
    $dec_text = $crypt->decrypt($enc_text,$crypt->getKey());
    echo “加密前 : $string
    n”;
    echo “加密后 : $enc_text
    n”;
    echo “解密后 : $dec_text n”;
    ?>
    執(zhí)行結(jié)果:
    加密前 :
    加密后 : hSzQ’Z* kP~y(WpVs=6Q3gZbR5QkhtZ(f=Zm
    解密后 :