加密摘要编码DES base64 MD5

DES.php

<?php
class DES1 {      
    var $key;         
    function    DES1($key) {          
        $this->key = $key;         
    }         
    function encrypt($input) {        
        $size = mcrypt_get_block_size('des', 'ecb');          
        $input = $this->pkcs5_pad($input, $size);          
        $key = $this->key;         
        $td = mcrypt_module_open('des', '', 'ecb', '');       
        $iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);      
        @mcrypt_generic_init($td, $key, $iv);         
        $data = mcrypt_generic($td, $input);          
        mcrypt_generic_deinit($td);      
        mcrypt_module_close($td);         
        $data = base64_encode($data);         
        return $data;     
    }         
    function decrypt($encrypted) {        
        $encrypted = base64_decode($encrypted);       
        $key =$this->key;          
        $td = mcrypt_module_open('des','','ecb','');   
        //使用MCRYPT_DES算法,cbc模式                
        $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);            
        $ks = mcrypt_enc_get_key_size($td);               
        @mcrypt_generic_init($td, $key, $iv);         
        //初始处理                
        $decrypted = mdecrypt_generic($td, $encrypted);         
        //解密              
        mcrypt_generic_deinit($td);         
        //结束            
        mcrypt_module_close($td);                 
        $y=$this->pkcs5_unpad($decrypted);          
        return $y;    
    }         
    function pkcs5_pad ($text, $blocksize) {          
        $pad = $blocksize - (strlen($text) % $blocksize);         
        return $text . str_repeat(chr($pad), $pad);   
    }     
    function pkcs5_unpad($text) {         
        $pad = ord($text{strlen($text)-1});       
        if ($pad > strlen($text))              
            return false;         
        if (strspn($text, chr($pad), strlen($text) - $pad) != $pad)               
            return false;         
        return substr($text, 0, -1 * $pad);   
    }  
}   

?>
phpjx.php

<?php
$params=array(
    "userId" => 1,
    "name" => "tester",
    "qq" => "183367466",
);
$params=json_encode($params);
include ".\DES.php";
$key="1a2b3c4d5e6f";
$crypt = new DES1($key);  
$v=$crypt->encrypt($params);
$vurl=urlencode($v);
$m=md5($v);
?>
<br>
<a href="api.php?m=<?php echo $m;?>&v=<?php echo $vurl;?>">api</a>

api.php

<?php
include ".\DES.php";
$key="1a2b3c4d5e6f";
$m=$_GET["m"];
$v=$_GET["v"];
if(md5($v)!=$m){
    echo "error";exit;
}
$crypt = new DES1($key);  
$a=$_GET["v"];
echo $a;
$decode=$crypt->decrypt($a);
echo $decode."<br>";
$decodeJson=json_decode($decode);
$decodeArray=get_object_vars($decodeJson);
echo "<pre>";
print_r($decodeArray);
echo "</pre>";

    A+
发布日期:2014年09月17日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: