登录  /  注册
博主信息
博文 42
粉丝 2
评论 0
访问量 52635
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
IM微信即时通讯 (reids初识与AES加密方法) 2019年3月11日
小明的博客
原创
1035人浏览过

今天主要有两方面的内容,redis的基本知识(安装,基本操作,哈希表的操作),aes加密技术在php的实现

  • redis基本操作

    • 安装

         网上找的教程,安装起来比较简单,同时安装了图形客户端

    • 操作

        set  可以设置键值对   get可以获取  hset 设置哈希表(键值数组)的键 字段  值  hget获取  hgetall获取键下的所有字段和值

  • AES加密技术

    • php5


    实例

    <?php
    $str = "yihang.web11";
    //aes类实例
    $aes = new AES();
    $enAes = $aes->encrypt($str);
    $deAes = $aes->decrypt($enAes);
    echo $enAes;
    echo '<hr>';
    echo $deAes;
    //AES加密解密类
    class AES{
        //密钥
        private $skey = "fuckfuckfuckfuck";
        //cbc模式 偏移量
        public function __construct()
        {
            define('IV', 'pickbickdicksick');
        }
    
        //加密 $str需要加密的字符串、明文
        public function encrypt($str){
            $encrypt_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->skey, $str, MCRYPT_MODE_CBC, IV);
            return base64_encode($encrypt_str);
        }
        //解密 $str需要揭秘的数据  密文
        public function decrypt($str){
            $str = base64_decode($str);
            $decrypt_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->skey, $str, MCRYPT_MODE_CBC, IV);
            return $decrypt_str;
        }
    }

    运行实例 »

    点击 "运行实例" 按钮查看在线实例

    • php7.2  开启openssl  

    实例

    <?php
    $str = "jj.io";
    $ase = new AES_OPENSSL();
    $en_res = $ase->encrypt($str);
    $de_res = $ase->decrypt($en_res);
    echo $en_res;
    echo '<hr>';
    echo $de_res;
    
        //php7.2
    class AES_OPENSSL {
        public function __construct()
        {
            //加密方式
            $this->cipher = 'aes-128-gcm';
            //// options 是以下标记的按位或: OPENSSL_RAW_DATA 、OPENSSL_ZERO_PADDING
            $this->options = 0;
            //使用 AEAD 密码模式(GCM 或 CCM)时传引用的验证标签
            $this->tag = '';
            //获得该加密方式的iv长度
            $ivLength = openssl_cipher_iv_length($this->cipher);
            //非null的初始化向量
            $this->iv = openssl_random_pseudo_bytes($ivLength);
            //生成相对应长度的伪随机字符串初始化向量
            $this->skey = 'dookdookdookdook';
    
        }
        //加密
        public function encrypt($str){
            $enText = openssl_encrypt($str, $this->cipher, $this->skey, $this->options, $this->iv, $this->tag);
            return $enText;
        }
        //解密
        public function decrypt($str){
            $deText = openssl_decrypt($str, $this->cipher, $this->skey, $this->options, $this->iv, $this->tag);
            return $deText;
        }
    }

    运行实例 »

    点击 "运行实例" 按钮查看在线实例

  • 总结

    • 加密技术是能够解密的才称之为加密技术,主流的有DSE和ASE,DSE被破解所以现在都有ASE。MD5不能算加密技术。

    • redis技术是内存数据库,特点就是读取数据快,不过进程结束数据就没有了

批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学