文档章节

PHP的cookie加密的方法

zhiqiangw
 zhiqiangw
发布于 2016/11/13 10:31
字数 234
阅读 87
收藏 0

PHP的cookie加密的方法,本文实例讲述了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); 
    } 
} 

 

© 著作权归作者所有

zhiqiangw
粉丝 12
博文 193
码字总数 142771
作品 0
郑州
程序员
私信 提问
PHP操作管理Cookie一些小知识

网上查到的PHP操作管理Cookie一些小知识,与大家分享。 首先,PHP设置客户端cookie的原理。 a) 服务器通过随着响应发送一个http 的Set-Cookie 头,在客户机中设置一个cookie(多个cookie要多个...

大德
2013/03/25
557
0
Python Web框架会话管理:从LFR到RCE

Django, Bottle, Flask,等所有的python web框架都需要配置一个SECRET_KEY。文档通常推荐我们使用随机的值,但我很难发现他有任何文字说明,因为这样容易被破解(本地攻击或者文本阅读在web a...

renwofei423
2013/02/01
2.1K
10
慢慢记录有关渗透3

根据一教程简单整理,还没整理完。慢慢拼凑。。。 cookies 存储 敏感信息 ddos拒绝服务攻击: 文件上传的漏洞 文件上传过滤 通过后缀名过滤二进制存储文件头和尾获取是否有效修改服务器核心参...

天马行空的鱼
2016/11/02
8
0
JSON Web Token 使用详解

JWT是什么? JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案。它是有三部分组成,示例如下,具体的讲解如下(jwt是不会有空行的,下面只是为了显示,便使用了换行看着比较方便)。 ...

鹏飞q
09/09
82
0
JavaScript前端开发人员的前5个Angular课程

  如果你正在竞争需要PHP知识的职位,那么请继续阅读以获得很好的问题,以便对自己的PHP实力进行测验!      Q1.描述PHP   Ans:PHP是一种服务器端脚本语言,最常用于Web应用程序。P...

爱码农
2018/11/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

可能是国内第一篇全面解读 Java 现状及趋势的文章

作者 | 张晓楠 Dragonwell JDK 最新版本 8.1.1-GA 发布,包括全新特性和更新! 导读:InfoQ 发布《2019 中国 Java 发展趋势报告》,反映 Java 在中国发展的独特性,同时也希望大家对 Java 有...

阿里云官方博客
16分钟前
3
0
Spring Boot 2.x基础教程:Swagger静态文档的生成

前言 通过之前的两篇关于Swagger入门以及具体使用细节的介绍之后,我们已经能够轻松地为Spring MVC的Web项目自动构建出API文档了。如果您还不熟悉这块,可以先阅读: Spring Boot 2.x基础教程...

程序猿DD
20分钟前
3
0
《毅力》读书笔记

1.确信你全身心地投入 2.准备好为目标进行艰难的跋涉 3.通过减少需要使用毅力的情形,为将来的挑战做好准备 4.尽可能具体细致地确定你的目标和实现目标的过程 5.把挑战分解为小而易于管理的小...

lingch
21分钟前
3
0
zk中快速选举FastLeaderElection实现

选举涉及概念 服务器状态 投票 如何选择投票? 协议 选举 如何进行选举? epoch 发送者 接收者 发送队列 接收队列 服务器状态 public enum ServerState { LOOKING,寻找Leader状态,当服务处于...

writeademo
24分钟前
3
0
教你玩转Linux—磁盘管理

Linux磁盘管理好坏直接关系到整个系统的性能问题,Linux磁盘管理常用三个命令为df、du和fdisk。 df df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少...

Linux就该这么学
26分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部