【问题标题】:how to find checksum of a string in C#如何在C#中查找字符串的校验和
【发布时间】:2026-02-16 17:45:01
【问题描述】:

您好,我想查找单个字符串的校验和。创建校验和的过程是什么,如何创建给定字符串的 8 位校验和。像使用 C# .net

 string this= "This is a test string";

如何使用 8 位校验和找到该字符串的校验和。

【问题讨论】:

  • .NET 中没有标准的“8 位校验和”。您可以很容易地从 SHA 哈希中获取 8 位......但我不知道真正的“要求”是什么。
  • 首先您需要决定使用哪种编码来将文本数据转换为二进制数据,因为哈希和校验和通常适用于二进制输入。
  • 我对校验和的要求是32位整数并以十六进制表示。校验和应该是消息异或的负值。我需要一个逐步的过程来得到这个。我无法理解这一点。我对校验和一无所知。未指定编码我可以使用任何,
  • @user2864740 你能分享任何 SHA 哈希的例子吗?
  • @RidaShahid 没有。但是通过搜索找到了很多示例。请注意,从加密哈希和特定 CRC/校验和中获取位在目的上严格互换。应该更好地指定“要求”。请尝试对具体“要求”和一般背景知识进行尽职调查。

标签: c# .net checksum


【解决方案1】:

这是 CRC8 的一个实现 - http://www.sanity-free.com/146/crc8_implementation_in_csharp.html 这是http://en.wikipedia.org/wiki/Cyclic_redundancy_check的实现@

你还可以在http://en.wikipedia.org/wiki/List_of_hash_functions上找到一堆其他的哈希函数

正如评论中提到的,您还可以使用标准加密哈希函数之一的低/高字节:

MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hash = md5.ComputeHash(inputBytes);
return hash[0];

【讨论】: