php实现cookie加密的方法
本文实例讲述了php实现cookie加密的方法。分享给大家供大家参考。具体实现方法如下:
<?php
classCookie
{
/**
*解密已经加密了的cookie
*
*@paramstring$encryptedText
*@returnstring
*/
privatestaticfunction_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);
returntrim($decryptText);
}
/**
*加密cookie
*
*@paramstring$plainText
*@returnstring
*/
privatestaticfunction_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);
returntrim(base64_encode($encryptText));
}
/**
*删除cookie
*
*@paramarray$args
*@returnboolean
*/
publicstaticfunctiondel($args)
{
$name=$args['name'];
$domain=isset($args['domain'])?$args['domain']:null;
returnisset($_COOKIE[$name])?setcookie($name,'',time()-86400,'/',$domain):true;
}
/**
*得到指定cookie的值
*
*@paramstring$name
*/
publicstaticfunctionget($name)
{
returnisset($_COOKIE[$name])?self::_decrypt($_COOKIE[$name]):null;
}
/**
*设置cookie
*
*@paramarray$args
*@returnboolean
*/
publicstaticfunctionset($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;
returnsetcookie($name,$value,$expire,$path,$domain,$secure);
}
}
希望本文所述对大家的php程序设计有所帮助。