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教程 变量定义
Oct 23 PHP
php开发环境配置记录
Jan 14 PHP
PHP array_multisort()函数的使用札记
Jul 03 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
Jun 17 PHP
Yii Framework框架获取分类下面的所有子类方法
Jun 20 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
php实现的常见排序算法汇总
Sep 08 PHP
php魔术变量用法实例详解
Nov 13 PHP
PHP实现的迷你漂流瓶
Jul 29 PHP
PHP数组函数知识汇总
May 12 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
Oct 29 PHP
php实现数据库的增删改查
Feb 26 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
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
php+mysql 实现身份验证代码
2010/03/24 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
Vue.js实现可编辑的表格
2019/12/11 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
如何在python中判断变量的类型
2020/07/29 Python
详解Python高阶函数
2020/08/15 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
介绍一下linux文件系统分配策略
2012/11/17 面试题
澳大利亚商务邀请函
2014/01/17 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
承租经营合作者协议书
2014/10/01 职场文书
婚前协议书标准版
2014/10/19 职场文书
开国大典观后感
2015/06/04 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
python非标准时间的转换
2021/07/25 Python
「Manga Time Kirara MAX」2022年5月号封面公开
2022/03/21 日漫