加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

畅聊PHP使用Aeses进行加密处理

发布时间:2022-07-19 14:56:27 所属栏目:PHP教程 来源:互联网
导读:在项目中,尤其是pc端的时候,我们在用户登录后会给前端返回一个标识,来判断用户是否登录,这个标识大多数都是用户的id image.png 但是这里存在很大的弊端,那就是这个值可以修改,假如说把我这个值一修改,我就可以获取到修改的用户的所有信息,可怕吧!
  在项目中,尤其是pc端的时候,我们在用户登录后会给前端返回一个标识,来判断用户是否登录,这个标识大多数都是用户的id
 
  image.png
 
  但是这里存在很大的弊端,那就是这个值可以修改,假如说把我这个值一修改,我就可以获取到修改的用户的所有信息,可怕吧!
 
  那么今天就使用aes进行加密处理一下
 
 
 
  <?php
 
  namespace appapicontroller;
 
   
 
  /**
 
   * aes 加密 解密类库
 
   * Class Aes
 
   * @package appcommonlib
 
   */
 
  class Aes {
 
   
 
      private $key = null;
 
   
 
      /**
 
       *
 
       * @param $key      密钥
 
       * @return String
 
       */
 
      public function __construct() {
 
          // 需要小伙伴在配置文件app.php中定义aeskey
 
          $this->key = '1234567891112121';
 
      }
 
   
 
      /**
 
       * 加密
 
       * @param String input 加密的字符串
 
       * @param String key   解密的key
 
       * @return HexString
 
       */
 
      public function encrypt($input = '') {
 
          $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
 
          $input = $this->pkcs5_pad($input, $size);
 
          $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, '');
 
          $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
 
      }
 
      /**
 
       * 填充方式 pkcs5
 
       * @param String text        原始字符串
 
       * @param String blocksize   加密长度
 
 
      }
 
   
 
      /**
 
       * 解密
 
       * @param String input 解密的字符串
 
       * @param String key   解密的key
 
       * @return String
 
       */
 
      public function decrypt($sStr) {
 
          $decrypted= mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$this->key,base64_decode($sStr), MCRYPT_MODE_ECB);
 
          $dec_s = strlen($decrypted);
 
          $padding = ord($decrypted[$dec_s-1]);
 
          $decrypted = substr($decrypted, 0, -$padding);
 
   
 
          return $decrypted;
 
      }
 
   
 
  }
 
  这是一个aes的工具类。注意一下,这个值需要我们来自改,而且是16位
 
  image.png
 
  这样我们用户在登录时会把id返回给前端

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读