一个简洁的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 相关文章推荐
追求程序速度,而不是编程的速度
Apr 23 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
May 24 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
Jun 05 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
Sep 24 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
php阳历转农历优化版
Aug 08 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
Nov 17 PHP
PHP获取指定日期是星期几的实现方法
Nov 30 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 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初学者头疼问题总结
2006/10/09 PHP
一个简洁的多级别论坛
2006/10/09 PHP
基于PHP Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
深入PHP数据缓存的使用说明
2013/05/10 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
php常用字符函数实例小结
2016/12/29 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
JS解密入门之凭直觉解
2008/06/25 Javascript
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
微信小程序Page中data数据操作和函数调用方法
2019/05/08 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
关于python多重赋值的小问题
2019/04/17 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
高三自我鉴定怎么写
2013/10/19 职场文书
工艺工程师工作职责
2013/11/23 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
党员干部公开承诺书
2014/03/26 职场文书
大学应届毕业生求职信
2014/05/24 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
2021/10/16 Python
python 中的jieba分词库
2021/11/23 Python