Blogger Information
Blog 42
fans 2
comment 0
visits 53983
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
IM微信即时通讯 (reids初识与AES加密方法) 2019年3月11日
小明的博客
Original
1061 people have browsed it

今天主要有两方面的内容,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技术是内存数据库,特点就是读取数据快,不过进程结束数据就没有了

Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments