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

cookie加密~

PHP中文网
PHP中文网Original
2016-05-25 17:12:49942Durchsuche

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


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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn