程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php實現cookie加密解密

php實現cookie加密解密

編輯:PHP綜合

1.加密解密類

 

 class Mcrypt
 {
     /**
      * 解密
      * 
      * @param string $encryptedText 已加密字符串
      * @param string $key  密鑰
      * @return string
      */
     public static function _decrypt($encryptedText,$key = null)
     {
         $key = $key === null ? Config::get('secret_key') : $key;
         $cryptText = base64_decode($encryptedText);
         $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
         $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);
         $decryptText = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $cryptText, MCRYPT_MODE_ECB, $iv);
         return trim($decryptText);
     }
  
     /**
      * 加密
      *
      * @param string $plainText 未加密字符串 
      * @param string $key        密鑰
      */
     public static function _encrypt($plainText,$key = null)
     {
         $key = $key === null ? Config::get('secret_key') : $key;
         $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
         $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);
         $encryptText = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $plainText, MCRYPT_MODE_ECB, $iv);
         return trim(base64_encode($encryptText));
     }
 }

 

 

2.cookie加密解密類

 

 <?php
 class Cookie extends Mcrypt
 {
     /**
      * 刪除cookie
      * 
      * @param array $args
      * @return boolean
      */
     public static function del($args)
     {
         $name = $args['name'];
         $domain = isset($args['domain']) ? $args['domain'] : null;
         return isset($_COOKIE[$name]) ? setcookie($name, '', time() - 86400, '/', $domain) : true;
     }
      
     /**
      * 得到指定cookie的值
      * 
      * @param string $name
      */
     public static function get($name)
     {
         return isset($_COOKIE[$name]) ? parent::_decrypt($_COOKIE[$name]) : null;
     }
      
     /**
      * 設置cookie
      *
      * @param array $args
      * @return boolean
      */
     public static function set($args)
     {
         $name = $args['name'];
         $value= parent::_encrypt($args['value']);
         $expire = isset($args['expire']) ? $args['expire'] : null;
         $path = isset($args['path']) ? $args['path'] : '/';
         $domain = isset($args['domain']) ? $args['domain'] : null;
         $secure = isset($args['secure']) ? $args['secure'] : 0;
         return setcookie($name, $value, $expire, $path, $domain, $secure);
     }
 }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved