我似乎無法找到關於這個校驗和算法的很多信息,並沒有涉及到C#,我有一個scenerio如下;在C#中的Mod 256校驗和的例子#
我有數據,例如串:
string input = "hello world"
,我想創建一個校驗和,那我以後可以用相同的字符串
我似乎無法找到關於這個校驗和算法的很多信息,並沒有涉及到C#,我有一個scenerio如下;在C#中的Mod 256校驗和的例子#
我有數據,例如串:
string input = "hello world"
,我想創建一個校驗和,那我以後可以用相同的字符串
(byte) input.GetHashCode()
驗證吧......? ...
這是否使用Mod 256? – Jamie
只是反編譯的代碼:http://pastebin.com/CdXBYKBY ...任何理由,爲什麼它應該是Mod256?校驗和是校驗和,不是嗎? –
'(byte)input.GetHashCode()'有你的mod 256. –
也許這對你已經足夠了。如果您使用一個字節作爲校驗和,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];
}
轉換的字符串字節數組和calc校驗:
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,那麼他可能需要一個單字節,8位,因此模256校驗和。
這就是你剛纔簡單地從字符串GetBytes,並將它們全部XOR。
你能更好地描述你想要做什麼嗎? – BlueM