这个问题可能已经被问过了,但是关于 SO 的任何内容实际上都没有给我我需要的答案。
我正在尝试对其他人的 vb.NET 代码进行逆向工程,但我对 aXor
在这里所做的事情感到困惑。这是被解析的soap请求正文的1行(某些值已被遮盖,因此校验和在这种情况下可能不起作用):
<HD>CHANGEDTHIS01,W-A,0,7753.2018E,1122.6674N, 0.00,1,CID_V_01*3B</HD>
这是检查它的vb代码片段
LastStar = strValues(CheckLoop).IndexOf("*")
StrLen = strValues(CheckLoop).Length
TransCheckSum = Val("&h" + strValues(CheckLoop).Substring(LastStar + 1, (StrLen - (LastStar + 1))))
CheckSum = 0
For CheckString = 0 To LastStar - 1
CheckSum = CheckSum Xor Asc(strValues(CheckLoop)(CheckString))
Next '
If CheckSum <> TransCheckSum Then
'error with the checksum
...
好的,我明白了For
。我只需要解释 Xor 在做什么以及如何将其用于校验和。
谢谢。
PS:作为奖励,如果有人可以提供ac#翻译,我将不胜感激。