background image

PHP

入门 PHP 可逆加密函数

本文举例了一个 PHP 可逆加密函数进行分析介绍,供参考。
很多时候我们需要对数据进行加密解密,比如有些数据需要保存到 cookie 中,但又不能
被用户轻易得到这些数据,这时我们就需要加密这些数据保存到 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));