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下的权限算法的实现
Apr 28 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
Yii清理缓存的方法
Jan 06 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
PHP5.4起内置web服务器使用方法
Aug 09 PHP
PHP简单判断手机设备的方法
Aug 23 PHP
浅析PHP7的多进程及实例源码
Apr 14 PHP
Laravel修改验证提示信息为中文的示例
Oct 23 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
PHP flush 函数使用注意事项
2016/08/26 PHP
PHP中16个高危函数整理
2019/09/19 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
JavaScript的Vue.js库入门学习教程
2016/05/23 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
详解React服务端渲染从入门到精通
2019/03/28 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
邮政员工辞职信
2014/01/16 职场文书
物业经理自我鉴定
2014/03/03 职场文书
西式婚礼主持词
2014/03/13 职场文书
文明寝室申报材料
2014/05/12 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
学校2014年度工作总结
2014/12/06 职场文书
红白喜事主持词
2015/07/06 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
Vue2.0搭建脚手架
2022/03/13 Vue.js