PHP操作Cookie的類

gdde 9年前發布 | 2K 次閱讀 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);
}

}</pre>

 本文由用戶 gdde 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!