所有字符的 XOR - 这是什么意思?

XOR of all characters - what does it mean?

我需要通过以太网(套接字连接)向设备发送一个字符串。有起始位、消息内容、结束位和校验和。校验和描述为 "XOR of all characters".

我不明白这是什么意思。这是什么意思,如何使用 PHP 生成它?

校验和是在发送时根据您的输入生成的代码 以便接收方可以使用它来检查数据是否有错误(接收方将生成自己的校验和并将其与您的校验和进行比较,并在它们不匹配时引发错误或其他内容)。

试试这个方法,其中 returns 异或校验和:

function GetCheckSum($str)
{
  $r = 0;
  for ($i = 0; $i < strlen($str); $i++) {
    $o = ord(substr($str, $i, 1));
    $r = $r ^ $o;
  }
  return $r;
}

如果它对您不起作用,可能将 return $r; 更改为 return dechex($r); 会有所帮助(将十进制转换为十六进制)。