一个简洁的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之PHP语法学习笔记1
Dec 17 PHP
PHP中使用smarty生成静态文件的例子
Apr 24 PHP
php递归删除目录下的文件但保留的实例分享
May 10 PHP
ThinkPHP中I(),U(),$this->post()等函数用法
Nov 22 PHP
php常见的魔术方法详解
Dec 25 PHP
php上传图片生成缩略图(GD库)
Jan 06 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
Feb 19 PHP
详解PHP swoole process的使用方法
Aug 26 PHP
PHP+MySQL实现消息队列的方法分析
May 09 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
基于PHP的登录和注册的功能的实现
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回调函数与匿名函数实例详解
2017/08/16 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
删除重复数据的算法
2006/11/23 Javascript
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
JQuery循环滚动图片代码
2011/12/08 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
使用jquery实现放大镜效果
2014/09/02 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
深入解析Python中的urllib2模块
2015/11/13 Python
Python之web模板应用
2017/12/26 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
新学期教师寄语
2014/04/02 职场文书
初中体育教学随笔
2015/08/15 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
浅析python中特殊文件和特殊函数
2022/02/24 Python