php实现cookie加密的方法


Posted in PHP onMarch 10, 2015

本文实例讲述了php实现cookie加密的方法。分享给大家供大家参考。具体实现方法如下:

<?php

class Cookie

{

    /**

     * 解密已经加密了的cookie

     * 

     * @param string $encryptedText

     * @return string

     */

    private static function _decrypt($encryptedText)

    {

        $key = Config::get('secret_key');

        $cryptText = base64_decode($encryptedText);

        $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);

        $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);

        $decryptText = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $cryptText, MCRYPT_MODE_ECB, $iv);

        return trim($decryptText);

    }

    /**

     * 加密cookie

     *

     * @param string $plainText

     * @return string

     */

    private static function _encrypt($plainText)

    {

        $key = Config::get('secret_key');

        $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);

        $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);

        $encryptText = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $plainText, MCRYPT_MODE_ECB, $iv);

        return trim(base64_encode($encryptText));

    }

    /**

     * 删除cookie

     * 

     * @param array $args

     * @return boolean

     */

    public static function del($args)

    {

        $name = $args['name'];

        $domain = isset($args['domain']) ? $args['domain'] : null;

        return isset($_COOKIE[$name]) ? setcookie($name, '', time() - 86400, '/', $domain) : true;

    }

    /**

     * 得到指定cookie的值

     * 

     * @param string $name

     */

    public static function get($name)

    {

        return isset($_COOKIE[$name]) ? self::_decrypt($_COOKIE[$name]) : null;

    }

    /**

     * 设置cookie

     *

     * @param array $args

     * @return boolean

     */

    public static function set($args)

    {

        $name = $args['name'];

        $value= self::_encrypt($args['value']);

        $expire = isset($args['expire']) ? $args['expire'] : null;

        $path = isset($args['path']) ? $args['path'] : '/';

        $domain = isset($args['domain']) ? $args['domain'] : null;

        $secure = isset($args['secure']) ? $args['secure'] : 0;

        return setcookie($name, $value, $expire, $path, $domain, $secure);

    }

}

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
浅谈Windows下 PHP4.0与oracle 8的连接设置
Oct 09 PHP
php DOS攻击实现代码(附如何防范)
May 29 PHP
phpcms模块开发之swfupload的使用介绍
Apr 28 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
Jan 07 PHP
php使用curl代理实现抓取数据的方法
Feb 03 PHP
PHP实现百度人脸识别
May 06 PHP
Yii2 queue的队列使用详解
Jul 19 PHP
PHP数组对象与Json转换操作实例分析
Oct 22 PHP
KindEditor在php环境下上传图片功能集成的方法示例
Jul 20 PHP
PHP数组Key强制类型转换实现原理解析
Sep 01 PHP
PHP正则表达式之RCEService回溯
Apr 11 PHP
php遍历目录方法小结
Mar 10 #PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 #PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 #PHP
php获取本周开始日期和结束日期的方法
Mar 09 #PHP
php数组转成json格式的方法
Mar 09 #PHP
php实现将数组转换为XML的方法
Mar 09 #PHP
php返回字符串中所有单词的方法
Mar 09 #PHP
You might like
基于PHP开发中的安全防范知识详解
2013/06/06 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
2015/03/16 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
javascript self对象使用详解
2016/10/18 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
python中的多线程实例教程
2014/08/27 Python
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
深入了解python中元类的相关知识
2019/08/29 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
食品行业求职人的自我评价
2014/01/19 职场文书
广告创意求职信
2014/03/17 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
药店促销活动总结
2014/07/10 职场文书
英语系本科生求职信
2014/07/15 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
教师节简报
2015/07/20 职场文书
会议室使用管理制度
2015/08/06 职场文书
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫
Android自定义双向滑动控件
2022/04/19 Java/Android
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android