厚底松糕老爹鞋 發表於 2019-8-8 16:44:00

PHP 异或 算法

<p>/**<br>   * PHP字符串“异或”算法<br>   * param    array   key<br>   * @param Request $request<br>   * @return mixed|string|void<br>   */<br>    public function setSecretKey(Request $request){<br>      $keyArr = $request-&gt;input('key');<br>      if(!is_array($keyArr) || empty($keyArr))<br>            return;<br>      foreach ($keyArr as $v){<br>            if(empty($v) || (strlen($v) != 32)){<br>                return;<br>            }<br>      }<br>      if(count($keyArr) == 1)<br>            return $keyArr;<br>      $arrLength = count($keyArr);<br>      $initKey = "00000000000000000000000000000000";<br>      $initKeyArr = str_split($initKey);<br>      for($i = 0;$i &lt; $arrLength;$i++){<br>            $newKey = '';<br>            for($j = 0;$j &lt; strlen($keyArr[$i]);$j++){<br>                $str = '';<br>                $tmpArr = str_split($keyArr[$i]);<br>                $tmpA = str_pad(base_convert($tmpArr[$j],16,2),4,0,STR_PAD_LEFT);<br>                $tmpB = str_pad(base_convert($initKeyArr[$j],16,2),4,0,STR_PAD_LEFT);<br>                for($k=0;$k&lt;strlen($tmpA);$k++){<br>                  $str .=(intval($tmpA[$k]) ^ intval($tmpB[$k]));<br>                }<br>                $tmpOneKey = strtoupper(base_convert($str,2,16));<br>                unset($str);<br>                $newKey .= $tmpOneKey;<br>            }<br>            unset($initKeyArr);<br>            $initKeyArr = str_split($newKey);<br>      }<br>      return join($initKeyArr);<br>    }<br>--------------------- <br>作者:JasonHome <br>来源:CSDN <br>原文:https://blog.csdn.net/qq_29627497/article/details/82964467 <br>版权声明:本文为博主原创文章,转载请附上博文链接!</p><br><br>
来源:https://www.cnblogs.com/xinyixuan/p/11322144.html
頁: [1]
查看完整版本: PHP 异或 算法