一个简洁的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 相关文章推荐
PHP 加密与解密的斗争
Apr 17 PHP
PHP提取数据库内容中的图片地址并循环输出
Mar 21 PHP
php 变量未定义等错误的解决方法
Jan 12 PHP
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
PHP的PSR规范中文版
Sep 28 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
php实现三级级联下拉框
Apr 17 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
PHP对象相关知识总结
Apr 09 PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 PHP
详解Laravel服务容器的优势
May 29 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/09/05 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
PHP curl批处理及多请求并发实现方法分析
2018/08/15 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
jquery checkbox全选、取消全选实现代码
2010/03/05 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
2017/11/21 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
python 中split 和 strip的实例详解
2017/07/12 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
python的set处理二维数组转一维数组的方法示例
2019/05/31 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
超市中秋节促销方案
2014/03/21 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
校企合作协议书
2014/04/16 职场文书
演讲比赛策划方案
2014/06/11 职场文书
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
2015年环卫工作总结
2015/04/28 职场文书
大学生团日活动总结
2015/05/06 职场文书
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS