本文实例讲述了php实现cookie加密的方法。分享给大家供大家参考。具体实现方法如下:
<?php<br />class Cookie<br />{<br /> /**<br /> * 解密已经加密了的cookie<br /> * <br /> * @param string $encryptedText<br /> * @return string<br /> */<br /> private static function _decrypt($encryptedText)<br /> {<br /> $key = Config::get('secret_key');<br /> $cryptText = base64_decode($encryptedText);<br /> $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);<br /> $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);<br /> $decryptText = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $cryptText, MCRYPT_MODE_ECB, $iv);<br /> return trim($decryptText);<br /> }<br /> /**<br /> * 加密cookie<br /> *<br /> * @param string $plainText<br /> * @return string<br /> */<br /> private static function _encrypt($plainText)<br /> {<br /> $key = Config::get('secret_key');<br /> $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);<br /> $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);<br /> $encryptText = mcrypt_encrypt(MCRYPT_R<mark style="color:transparent">本%文来源gaodaimacom搞#^代%!码网@</mark>搞代gaodaima码IJNDAEL_256, $key, $plainText, MCRYPT_MODE_ECB, $iv);<br /> return trim(base64_encode($encryptText));<br /> }<br /> /**<br /> * 删除cookie<br /> * <br /> * @param array $args<br /> * @return boolean<br /> */<br /> public static function del($args)<br /> {<br /> $name = $args['name'];<br /> $domain = isset($args['domain']) ? $args['domain'] : null;<br /> return isset($_COOKIE[$name]) ? setcookie($name, '', time() - 86400, '/', $domain) : true;<br /> }<br /> /**<br /> * 得到指定cookie的值<br /> * <br /> * @param string $name<br /> */<br /> public static function get($name)<br /> {<br /> return isset($_COOKIE[$name]) ? self::_decrypt($_COOKIE[$name]) : null;<br /> }<br /> /**<br /> * 设置cookie<br /> *<br /> * @param array $args<br /> * @return boolean<br /> */<br /> public static function set($args)<br /> {<br /> $name = $args['name'];<br /> $value= self::_encrypt($args['value']);<br /> $expire = isset($args['expire']) ? $args['expire'] : null;<br /> $path = isset($args['path']) ? $args['path'] : '/';<br /> $domain = isset($args['domain']) ? $args['domain'] : null;<br /> $secure = isset($args['secure']) ? $args['secure'] : 0;<br /> return setcookie($name, $value, $expire, $path, $domain, $secure);<br /> }<br />}
希望本文所述对大家的php程序设计有所帮助。