簡體   English   中英

Java中的二進制加法校驗和

[英]Binary addition Checksum in Java

我正在嘗試為消息實現校驗和。 規范是:

實現校驗和,使得整個消息包裝器和消息數據(不包括校驗和)是截斷為四個字節的簡單二進制加法的結果。

不過,恐怕我不知道如何用Java做到這一點。 我非常感謝任何建議。

M.

它們可能意味着所有字節的簡單無符號加法(假設8位字節是您與之交互的最小單位):

byte[] data = getTheDataFromSomewhere();
long checksum = 0;
for (int i = 0; i < data.length; i++) {
  checksum += (data[i] & 0xFF);
}
checksum = checksum & 0xFFFFFFFFL; // truncate to 4 byte

您也可以在那里使用int ,但這會導致負數。 按位,它是等價的,但這樣比較值更容易。

如果需要,可以使用java標准庫函數。 http://download.oracle.com/javase/1.5.0/docs/api/java/util/zip/CRC32.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM