·您当前的位置:首页 > 技术教程 > JavaScript >

[JS]java加密封装和php加密封装(2)

时间:2014-09-23 17:15酷播
二、php代码 ? php classDES1{ var$key; functionDES1($key){ $this- key =$key; } functionencrypt($input){ $ size = mcrypt_get_block_size ('des','ecb'); $ input =$this- pkcs5_pad($input,$size); $ key =$t

二、php代码

  1. <?php   
  2. class DES1 {       
  3.     var $key;          
  4.     function    DES1($key) {           
  5.         $this->key = $key;          
  6.     }          
  7.     function encrypt($input) {         
  8.         $size = mcrypt_get_block_size('des', 'ecb');           
  9.         $input = $this->pkcs5_pad($input, $size);           
  10.         $key = $this->key;          
  11.         $td = mcrypt_module_open('des', '', 'ecb', '');        
  12.         $iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);       
  13.         @mcrypt_generic_init($td, $key, $iv);          
  14.         $data = mcrypt_generic($td, $input);           
  15.         mcrypt_generic_deinit($td);       
  16.         mcrypt_module_close($td);          
  17.         $data = base64_encode($data);          
  18.         return $data;      
  19.     }          
  20.     function decrypt($encrypted) {         
  21.         $encrypted = base64_decode($encrypted);        
  22.         $key =$this->key;           
  23.         $td = mcrypt_module_open('des','','ecb','');    
  24.         //使用MCRYPT_DES算法,cbc模式                 
  25.         $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);             
  26.         $ks = mcrypt_enc_get_key_size($td);                
  27.         @mcrypt_generic_init($td, $key, $iv);          
  28.         //初始处理                 
  29.         $decrypted = mdecrypt_generic($td, $encrypted);          
  30.         //解密               
  31.         mcrypt_generic_deinit($td);          
  32.         //结束             
  33.         mcrypt_module_close($td);                  
  34.         $y=$this->pkcs5_unpad($decrypted);           
  35.         return $y;     
  36.     }          
  37.     function pkcs5_pad ($text, $blocksize) {           
  38.         $pad = $blocksize - (strlen($text) % $blocksize);          
  39.         return $text . str_repeat(chr($pad), $pad);    
  40.     }      
  41.     function pkcs5_unpad($text) {          
  42.         $pad = ord($text{strlen($text)-1});        
  43.         if ($pad > strlen($text))               
  44.             return false;          
  45.         if (strspn($text, chr($pad), strlen($text) - $pad) != $pad)                
  46.             return false;          
  47.         return substr($text, 0, -1 * $pad);    
  48.     }   
  49. }    
  50.         $key = "abcdefgh";   
  51.         $input = "a";   
  52.         $crypt = new DES1($key);   
  53.         echo "Encode:".$crypt->encrypt($input)."<br/>";   
  54.         echo "Decode:".$crypt->decrypt($crypt->encrypt($input));   
  55.  
  56. ?>   
  57.  
  58.  
  59. php使用方法 
  60.  
  61. <?php   
  62.     include('DES.php');   
  63.    
  64.     $des = new Crypt_DES();   
  65.    
  66.     $des->setKey('abcdefgh');   
  67.     $plaintext = 'a';   
  68.     $jiami = base64_encode($des->encrypt($plaintext));   
  69.     echo "Encode:".$jiami."<br/>";   
  70.     echo "Decode:".$des->decrypt(base64_decode($jiami));   
  71. ?>   

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器