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 相关文章推荐
使用php+xslt在windows平台上
Oct 09 PHP
Http 1.1 Etag 与 Last-Modified提高php效率
Jan 10 PHP
PHP DataGrid 实现代码
Aug 12 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
PHP高级对象构建 多个构造函数的使用
Feb 05 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
May 20 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
Mar 27 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
May 29 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
Oct 10 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 01 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更新mysql后获取改变行数的方法
2014/12/25 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
javascript的事件描述
2006/09/08 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
2017/09/30 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
一些Unix笔试题和面试题
2013/01/22 面试题
音乐学个人的自荐书范文
2013/11/26 职场文书
前处理组长岗位职责
2014/03/01 职场文书
公司管理建议书范文
2014/03/12 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
保护环境倡议书100字
2014/05/19 职场文书
研究生求职自荐书
2014/06/23 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
2014年度考核工作总结
2014/12/24 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
城南旧事电影观后感
2015/06/16 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python