一个简洁的PHP可逆加密函数(分享)


Posted in PHP onJune 06, 2013

很多时候我们需要对数据进行加密解密,比如有些数据需要保存到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));  
    $p_t = mcrypt_cfb (MCRYPT_CAST_256, $key, $c_t, MCRYPT_DECRYPT, $iv);  
    return trim(chop($p_t));  
} 

这里记录下这个可逆的加密函数的使用。
PHP 相关文章推荐
杏林同学录(九)
Oct 09 PHP
用PHP和ACCESS写聊天室(五)
Oct 09 PHP
php 之 没有mysql支持时的替代方案
Oct 09 PHP
Windows IIS PHP 5.2 安装与配置方法
Jun 08 PHP
对text数据类型不支持代码页转换 从: 1252 到: 936
Apr 23 PHP
php json_encode奇怪问题说明
Sep 27 PHP
php数组一对一替换实现代码
Aug 31 PHP
php和editplus正则表达式去除空白行
Apr 17 PHP
Mac环境下php操作mysql数据库的方法分享
May 11 PHP
php判断用户是否手机访问代码
Jun 08 PHP
PHP中利用sleep函数实现定时执行功能实现代码
Aug 25 PHP
PHP使用ActiveMQ实现消息队列的方法详解
May 31 PHP
深入PHP获取随机数字和字母的方法详解
Jun 06 #PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 #PHP
深入PHP中慎用双等于(==)的详解
Jun 06 #PHP
解析PHP中如何将数组变量写入文件
Jun 06 #PHP
浅谈PHP强制类型转换,慎用!
Jun 06 #PHP
探讨file_get_contents与curl效率及稳定性的分析
Jun 06 #PHP
$_GET['goods_id']+0 的使用详解
Jun 06 #PHP
You might like
php实现文件下载更能介绍
2012/11/23 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
Django高级编程之自定义Field实现多语言
2019/07/02 Python
vue常用指令代码实例总结
2020/03/16 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
Python-split()函数实例用法讲解
2020/12/18 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
写给女朋友的道歉信
2014/01/12 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
志愿者活动总结范文
2014/04/26 职场文书
食品安全演讲稿
2014/09/01 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
雾霾停课通知
2015/04/24 职场文书
就业证明函
2015/06/17 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
2016年教代会开幕词
2016/03/04 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL