PHPIN.NET

 找回密码
 立即注册
查看: 5541|回复: 0

[高级进阶] 收藏一个简洁的PHP可逆加密函数

[复制链接]

469

主题

31

回帖

5497

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5497
发表于 2014-4-27 11:13:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
很多时候我们需要对数据进行加密解密,比如有些数据需要保存到cookie中,但又不能被用户轻易得到这些数据,这时我们就需要加密这些数据保存到cookie中,等我们需要使用它们的时候再解密。
加密的过程如下:
  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. }
复制代码

使用的时候再解密:
  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. }
复制代码

记录下这个可逆的加密函数的使用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|PHPIN.NET ( 冀ICP备12000898号-14 )|网站地图

GMT+8, 2024-3-29 05:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表