一个简洁的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 相关文章推荐
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 PHP
PHP的几个常用数字判断函数代码
Apr 24 PHP
php自动给文章加关键词链接的函数代码
Nov 29 PHP
php使用curl检测网页是否被百度收录的示例分享
Jan 31 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
Apr 08 PHP
php判断页面是否是微信打开的示例(微信打开网页)
Apr 25 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
Jun 21 PHP
PHP连接和操作MySQL数据库基础教程
Sep 29 PHP
PHP大神的十大优良习惯
Sep 14 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
Mar 28 PHP
php中时间函数date及常用的时间计算
May 12 PHP
php多进程模拟并发事务产生的问题小结
Dec 07 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中的boolean(布尔)类型详解
2013/10/28 PHP
php轻松实现中英文混排字符串截取
2014/05/28 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
JavaScript代码复用模式详解
2014/11/07 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
Python变量类型知识点总结
2019/02/18 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
Python函数基本使用原理详解
2020/03/19 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
Fossil美国官网:化石手表、手袋、首饰及配饰
2019/02/17 全球购物
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
abstract是什么意思
2012/02/12 面试题
军训教官感言
2014/03/02 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
《假如》教学反思
2014/04/17 职场文书
教师专业自荐信
2014/05/31 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
内勤岗位职责范本
2015/04/13 职场文书