zoukankan      html  css  js  c++  java
  • PHP 异或 算法

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

  • 相关阅读:
    C# 使用IComparer自定义List类的排序方案
    ubuntu的vim模式
    linux系统目录结构与层级命令使用
    GitHub托管项目
    应用TortoiseGit为github账号添加SSH keys
    PHP中利用PHPMailer配合QQ邮箱实现发邮件
    QQ互联 网站应用接入
    dedecms 中变量函数
    WebSocket 协议
    前端组件库
  • 原文地址:https://www.cnblogs.com/xinyixuan/p/11322144.html
Copyright © 2011-2022 走看看