一个简洁的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 相关文章推荐
JS 网站性能优化笔记
May 24 PHP
Array of country list in PHP with Zend Framework
Oct 17 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
PHP中的表达式简述
May 29 PHP
php编译安装php-amq扩展简明教程
Jun 25 PHP
yii的入口文件index.php中为什么会有这两句
Aug 04 PHP
使用正则去除php代码中的注释方法
Nov 03 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
Jun 16 PHP
Yii2语言国际化自动配置详解
Aug 22 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
Dec 07 PHP
php实现的顺序线性表示例
May 04 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
Aug 06 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 foreach、while性能比较
2009/10/15 PHP
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
js 复制或插入Html的实现方法小结
2010/05/19 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
python的Template使用指南
2014/09/11 Python
Python编程入门的一些基本知识
2015/05/13 Python
python实现聚类算法原理
2018/02/12 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
python实现图片横向和纵向拼接
2020/03/05 Python
搞笑征婚广告词
2014/03/17 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
思想品德课教学反思
2016/02/24 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers
python Django框架快速入门教程(后台管理)
2021/07/21 Python