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

时间:2016-07-20 23:29:07

分类:优秀文章

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

加密的过程如下:

折叠PHP 代码
  1. //加密数据并写到cookie里    
  2. $cookie_data = $this -> encrypt("nowamagic"$data);    
  3. $cookie = array(    
  4. 'name' => '$data',    
  5. 'value' => $cookie_data,    
  6. 'expire' => $user_expire,    
  7. 'domain' => '',    
  8. 'path' => '/',    
  9. 'prefix' => ''    
  10. );    
  11. $this->input->set_cookie($cookie);    
  12. //加密    
  13. public function encrypt($key$plain_text) {    
  14. $plain_text = trim($plain_text);    
  15. $iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));    
  16. $c_t = mcrypt_cfb (MCRYPT_CAST_256, $key$plain_text, MCRYPT_ENCRYPT, $iv);    
  17. return trim(chop(base64_encode($c_t)));    
  18. }    

使用的时候再解密:

折叠PHP 代码
  1. if( isset($_COOKIE['data']) ){    
  2. //用cookie给session赋值    
  3. $_SESSION['data'] = decrypt("nowamagic"$_COOKIE['data']);    
  4. }    
  5. function decrypt($key$c_t) {    
  6. $c_t = trim(chop(base64_decode($c_t)));    
  7. $iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));    
  8. $p_t = mcrypt_cfb (MCRYPT_CAST_256, $key$c_t, MCRYPT_DECRYPT, $iv);    
  9. return trim(chop($p_t));    
  10. }    

 

相关文章

相关推荐

为帝国CMS用户提供动力

Copyright © 2016 CmsDX.com All Rights Reserved.