たとえば、文字列「139c」があり、電卓を使用してチェック コードを計算し、13^9c= を電卓にコピーし、16 進数を使用して 8F が正しいと計算します
PHP を使用して計算します:
echo dechex(0x13^0x9c); //结果为 8f,正确echo "<hr>";$s1 = '0x13';$s2 = '0x9c';echo dechex($s1^$s2);//结果为 0, 错误echo "<hr>";$s3 = '13';$s4 = '9c';echo dechex($s3^$s4); //结果为 0 , 错误
PHPのAND or演算 すべての文字列が前後にある場合は、ASCコードでAND orを実行します
$s1 = ' 0x13';
$s2 = '0x9c';
asc に変換して AND を実行すると、
'0' ' 'x' ' 1' ' 3'
00110000 01110001 00110011
^
00110000 01111000 00111001 01100011
--- ---------------------------------------------- ------ -----------
00000000 00000000 00001000 01010000
結果は var_dump(chr(0).chr(0).chr(8).chr(80)) となります。 string(4)"P " である必要があります 3 つの非印刷文字が使用されているため
dechex 変換は、数字 (ASC は 48 から 57 までのみ認識し、その他は認識されません) から末尾または数字以外の文字まで始まります
、結果は 0 です
$s1 = 0x13;$s2 = 0x9c;echo dechex($s1^$s2);8f
$s1 = '0x13';
$s2 = '0x9c';
$s1 = 0x13; = 0x9c;
これら 2 つは 16 進数です、もちろん違います。
rreee