一个简洁的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 相关文章推荐
我的论坛源代码(四)
Oct 09 PHP
别人整理的服务器变量:$_SERVER
Oct 20 PHP
简单的PHP图片上传程序
Mar 27 PHP
Zend Studio 实用快捷键一览表(精心整理)
Aug 10 PHP
PHP基于yii框架实现生成ICO图标
Nov 13 PHP
最新制作ThinkPHP3.2.3完全开发手册
Nov 23 PHP
PHP内核学习教程之php opcode内核实现
Jan 27 PHP
PHP5.4起内置web服务器使用方法
Aug 09 PHP
简述php环境搭建与配置
Dec 05 PHP
thinkphp 验证码 的使用小结
May 07 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
PHP长连接实现与使用方法详解
Feb 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
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
php中array_column函数简单实现方法
2016/07/11 PHP
jQuery中focus事件用法实例
2014/12/26 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
python实现屏保计时器的示例代码
2018/08/08 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
pandas ix &iloc &loc的区别
2019/01/10 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
django在开发中取消外键约束的实现
2020/05/20 Python
python代码如何注释
2020/06/01 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
儿科主治医生个人求职信
2013/09/23 职场文书
机械工程师求职自我评价
2013/09/23 职场文书
企业文化建设实施方案
2014/03/22 职场文书
金融管理专业求职信
2014/07/10 职场文书
联谊活动总结
2014/08/28 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书