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 相关文章推荐
基于mysql的论坛(1)
Oct 09 PHP
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
Jan 12 PHP
TMDPHP 模板引擎使用教程
Mar 13 PHP
PHP中函数rand和mt_rand的区别比较
Dec 26 PHP
基于php下载文件的详解
Jun 02 PHP
php数组函数array_walk用法示例
May 26 PHP
谈谈PHP连接Access数据库的注意事项
Aug 12 PHP
php注册和登录界面的实现案例(推荐)
Oct 24 PHP
php实现的简单数据库操作Model类
Nov 16 PHP
PHP单例模式详解及实例代码
Dec 21 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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版)
2011/06/08 PHP
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
javascript smipleChart 简单图标类
2011/01/12 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
jquery图片切换实例分析
2015/04/15 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
js实现随机数小游戏
2019/06/28 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
Python解析json文件相关知识学习
2016/03/01 Python
Python 实现链表实例代码
2017/04/07 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
三个Unix的命令面试题
2015/04/12 面试题
房屋租赁协议书范本
2014/04/10 职场文书
环保标语口号
2014/06/13 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python