所有字符的 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);
会有所帮助(将十进制转换为十六进制)。
我需要通过以太网(套接字连接)向设备发送一个字符串。有起始位、消息内容、结束位和校验和。校验和描述为 "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);
会有所帮助(将十进制转换为十六进制)。