我似乎找不到很多关于这个校验和算法的信息,也没有任何关于 C# 的信息,我有一个如下场景;
我有一串数据,例如:
string input = "hello world"
我想创建一个校验和,以后可以用相同的字符串验证它
也许这对你来说已经足够了。如果您使用字节作为校验和,则自动隐含 Mod 256。
string s = "hello world";
byte[] data = Encoding.ASCII.GetBytes(s);
byte check = 0;
for (int i = 0; i < data.Length; i++)
{
check += data[i];
}
(byte) input.GetHashCode()
?............
将字符串转换为字节数组并计算校验和:
string input = "hello world";
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
var array = enc.GetBytes(input);
byte chksum = 0;
foreach(byte data in array)
{
chksum += data;
}
默认情况下,校验和是整个数据的简单二进制 XOR,以生成内容的单个数字描述符。通常,XOR 校验和的宽度为 32 或 64 以匹配平台字的大小以使其更快地计算,这些和分别以 2^32 和 2^64 为模。如果有人说模 256,那么他可能想要一个单字节 8 位,因此模 256 校验和。
也就是说,您只需简单地从字符串中获取字节,然后将它们全部异或。