从此不求人:自主研发一套PHP前端开发框架(20)

加密功能

一般来说我们会使用Des对称加密的方式来完成我们的数据加密功能

1.在PHP中通过开启mcrypt拓展库来支持des加密
在centos系统中可以。yun php-mcrypt来安装并支持拓展
类似的代码网站非常多,而且写的已经很完善了。我们就使用拿来主义了。

   function pkcs5_pad ($text, $blocksize) {  //加密时的字节填充,保持和java 一致
        $pad = $blocksize - (strlen($text) % $blocksize);  
        return $text . str_repeat(chr($pad), $pad);  
   } 
   function myCrypt($input,$key) //加密 {
        $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);  
          $input =pkcs5_pad($input, $size);  
          $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_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 myDecrypt($str,$key) //解密 {
     $decrypted= mcrypt_decrypt(  
          MCRYPT_RIJNDAEL_128,  
          $key,  
          base64_decode($str),  
          MCRYPT_MODE_ECB  
      );  

          $dec_s = strlen($decrypted);  
          $padding = ord($decrypted[$dec_s-1]);  
          $decrypted = substr($decrypted, 0, -$padding);  
          return $decrypted; 
   }

可能某些虚拟空间无法开启mcrypt 拓展库

你可能感兴趣的:(从此不求人:自主研发一套PHP前端开发框架(20))