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->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 < $arrLength;$i++){<br> $newKey = '';<br> for($j = 0;$j < 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<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]