星期四, 9月 20, 2012

收藏一个简洁的PHP可逆加密函数

很多时候我们需要对数据进行加密解密,比如有些数据需要保存到cookie中,但又不能被用户轻易得到这些数据,这时我们就需要加密这些数据保存到cookie中,等我们需要使用它们的时候再解密。



加密的过程如下:



view sourceprint?



// 加密数据并写到cookie里



// 加密数据并写到cookie里



$cookie_data = $this -> encrypt("nowamagic", $data);



$cookie = array(



'name' => '$data',



'value' => $cookie_data,



'expire' => $user_expire,



'domain' => '',



'path' => '/',



'prefix' => ''



);



$this->input->set_cookie($cookie);



// 加密



public function encrypt($key, $plain_text) {



$plain_text = trim($plain_text);



$iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));



$c_t = mcrypt_cfb (MCRYPT_CAST_256, $key, $plain_text, MCRYPT_ENCRYPT, $iv);



return trim(chop(base64_encode($c_t)));



}



使用的时候再解密:



if( isset($_COOKIE['data']) )

{

//用cookie给session赋值

$_SESSION['data'] = decrypt("nowamagic", $_COOKIE['data']);

}



function decrypt($key, $c_t) {

$c_t = trim(chop(base64_decode($c_t)));

$iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));

$p_t = mcrypt_cfb (MCRYPT_CAST_256, $key, $c_t, MCRYPT_DECRYPT, $iv);

return trim(chop($p_t));

}



这里记录下这个可逆的加密函数的使用。





資料來源:http://www.nowamagic.net/librarys/veda/detail/1947

沒有留言: