zoukankan      html  css  js  c++  java
  • 加密的原理异或&置换&位移

    1.异或代码

        function encrypt($data,$key){
        $content = $data ^ $key;
        
        return $content; 
      }
    
      function decrypt($data,$key){
        $content = $data ^ $key;
        return $content;
      }
      $data="this is test";
      $key =uniqid();
      $content = encrypt($data,$key);
      echo $content;
      $content = decrypt($content,$key);

    2.置换

      $str="abcdefg";
      $strs="";
      for($i=0;$i<strlen($str);$i++){
        $num = ord($str[$i])+10;
        $strs.=chr($num);    
      }
    
    for($i=0;$i<strlen($strs);$i++){
        $num = ord($strs[$i])-10;
        echo chr($num);
    }

    3.位移

     $num=0;
      $id = uniqid();
      $target = "";
      $str="abcdefg";
      for($j=0;$j <strlen($id);$j++){
        $num = $num + ord($id[$j]);
      }
      for($i=0;$i<strlen($str);$i++){
        $index = ($i+3)%strlen($str);
        $target.=$str[$index];
      }
      echo $str;
      echo "
    ";
      $totalLen = strlen($target);
    for($i=0;$i< strlen($target);$i++){
        $index = abs(($i+3+1)%$totalLen);
        echo $target[$index];
    }
  • 相关阅读:
    vue中的ref,refs使用
    setTimeout 为0的作用
    click 和 mousedown 以及map地图的pointerdown
    electron图标
    websocket
    居中
    一键生成vue模板
    IntelliJ IDEA 安装破解及汉化详解
    基础的一些东西
    git 合作开发
  • 原文地址:https://www.cnblogs.com/zh718594493/p/13519756.html
Copyright © 2011-2022 走看看