龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

强大的PHP加密解密类

时间:2014-07-22 14:50来源: 作者: 点击:
分享到:
a target=_blank href=http://list.qq.com/cgi-bin/qf_invite?id=08f814f703c7b4139f32b06cc2f7c0c1fd1b46f032c64622 rel=nofollow/a a href=http://qita.in/bMv target=_blank rel=nofollowimg alt=填写您的邮件地址,订阅我们的精彩内容:
填写您的邮件地址,订阅我们的精彩内容: http://blog.ddian.cn/?post=923
<?php
class Ender{
    private $enkey;//加密解密用的密钥
    //构造参数是密钥
    public function __construct($key=''){
        if(!$key){
            $this->enkey=$key;
        }
    }
    //设置密钥
    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='') 
    {
    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++; 
    } 
    return base64_encode($this->keyED($tmp,$key)); 
    }
    //解密字符串
    public function decrypt($txt,$key='') 
    {
    $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; //http://blog.ddian.cn
    }
        
}
精彩图集

赞助商链接