このチェックサムアルゴリズムに関する多くの情報を見つけることができず、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 です。誰かが modulo256 と言った場合、おそらく彼は 1 バイト、8 ビット、したがって modulo 256 チェックサムを望んでいます。
つまり、単に文字列から GetBytes を取得し、それらをすべて一緒に XOR するだけです。