Home > php教程 > PHP源码 > cookie加密~

cookie加密~

PHP中文网
Release: 2016-05-25 17:12:49
Original
943 people have browsed it

cookie加密~

<?php
class Cookie
{
	/**
	 * 解密已经加密了的cookie
	 * 
	 * @param string $encryptedText
	 * @return string
	 */
	private static function _decrypt($encryptedText)
	{
		$key = Config::get(&#39;secret_key&#39;);
		$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(&#39;secret_key&#39;);
		$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[&#39;name&#39;];
		$domain = isset($args[&#39;domain&#39;]) ? $args[&#39;domain&#39;] : null;
		return isset($_COOKIE[$name]) ? setcookie($name, &#39;&#39;, time() - 86400, &#39;/&#39;, $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[&#39;name&#39;];
		$value= self::_encrypt($args[&#39;value&#39;]);
		$expire = isset($args[&#39;expire&#39;]) ? $args[&#39;expire&#39;] : null;
		$path = isset($args[&#39;path&#39;]) ? $args[&#39;path&#39;] : &#39;/&#39;;
		$domain = isset($args[&#39;domain&#39;]) ? $args[&#39;domain&#39;] : null;
		$secure = isset($args[&#39;secure&#39;]) ? $args[&#39;secure&#39;] : 0;
		return setcookie($name, $value, $expire, $path, $domain, $secure);
	}
}
Copy after login


 以上就是cookie加密~的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template