PHP的cookie加密的方法

PHP的cookie加密的方法,本文实例讲述了php实现cookie加密的方法。

<?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); 
    } 
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值