-3

我似乎找不到很多关于这个校验和算法的信息,也没有任何关于 C# 的信息,我有一个如下场景;

我有一串数据,例如:

string input = "hello world"

我想创建一个校验和,以后可以用相同的字符串验证它

4

4 回答 4

3

也许这对你来说已经足够了。如果您使用字节作为校验和,则自动隐含 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];
  }
于 2012-08-30T12:39:05.330 回答
2

(byte) input.GetHashCode()?............

于 2012-08-30T12:37:46.280 回答
0

将字符串转换为字节数组并计算校验和:

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;
}
于 2012-08-30T12:39:41.023 回答
0

默认情况下,校验和是整个数据的简单二进制 XOR,以生成内容的单个数字描述符。通常,XOR 校验和的宽度为 32 或 64 以匹配平台字的大小以使其更快地计算,这些和分别以 2^32 和 2^64 为模。如果有人说模 256,那么他可能想要一个单字节 8 位,因此模 256 校验和。

也就是说,您只需简单地从字符串中获取字节,然后将它们全部异或。

于 2012-08-30T12:40:05.500 回答