一个简洁的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一些服务器端特性的配置加强php的安全
Oct 09 PHP
php数组应用之比较两个时间的相减排序
Aug 18 PHP
php基础学习之变量的使用
Jun 09 PHP
php 广告调用类代码(支持Flash调用)
Aug 11 PHP
php中邮箱地址正则表达式实现与详解
Apr 24 PHP
实测在class的function中include的文件中非php的global全局环境
Jul 15 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
May 23 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
Dec 11 PHP
PHP邮件群发机实现代码
Feb 16 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 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 学习路线与时间表
2010/02/21 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
原生JS实现跑马灯效果
2017/02/20 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
微信小程序模拟cookie的实现
2018/06/20 Javascript
Python 数据结构之队列的实现
2017/01/22 Python
python配置grpc环境
2019/01/01 Python
Python装饰器用法实例分析
2019/01/14 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
函授大专自我鉴定
2013/11/01 职场文书
励志演讲稿大全
2014/08/21 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
2014年转正工作总结
2014/11/08 职场文书
扬州个园导游词
2015/02/06 职场文书
会议通知格式范文
2015/04/15 职场文书
困难补助申请报告
2015/05/19 职场文书
JavaScript的Set数据结构详解
2022/02/18 Javascript