PHP的cookie加密的方法

PHP的cookie加密的方法,本文實例講述了php實現cookie加密的方法。php

<?php 
class Cookie 
{ 
    /** 
     * 解密已經加密了的cookie 
     * 
     * @param string $encryptedText 
     * @return string 
     */ 
    private static function _decrypt($encryptedText) 
    { 
        $key = Config::get('secret_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); 
    } 
    /** 
     * 加密cookie 
     * 
     * @param string $plainText 
     * @return string 
     */ 
    private static function _encrypt($plainText) 
    { 
        $key = Config::get('secret_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)); 
    } 
    /** 
     * 刪除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]) ? self::_decrypt($_COOKIE[$name]) : null; 
    } 
    /** 
     * 設置cookie 
     * 
     * @param array $args 
     * @return boolean 
     */ 
    public static function set($args) 
    { 
        $name = $args['name']; 
        $value= self::_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); 
    } 
}
相關文章
相關標籤/搜索