CRC-32B 雜湊碼計算器
已發佈: 2025年2月17日 下午6:31:01 [UTC]
最後更新: 2026年1月12日 上午9:16:10 [UTC]
該頁面是由英語機器翻譯而來的,以便盡可能多的人可以訪問。不幸的是,機器翻譯還不是一項完善的技術,因此可能會出現錯誤。如果您願意,可以在這裡查看原始英文版本:
CRC-32B Hash Code Calculator
CRC-32B Hash Code Calculator
循環冗餘校驗 (CRC) 是一種常用的錯誤檢測碼,用於檢測原始資料的意外變更。雖然嚴格來說它並非加密雜湊函數,但由於 CRC-32 能夠從可變長度的輸入產生固定長度(32 位元)的輸出,因此常被稱為雜湊函數。本頁展示的是 CRC-32B 變體,這實際上是 PHP 語言的特性,它將二進位的順序顛倒了(原始 CRC-32 使用的是大端字節序,而 CRC-32 使用的是小端字節序)。
完全披露:我沒有寫此頁面上使用的哈希函數的具體實現。它是 PHP 程式語言中包含的標準函數。為了方便起見,我僅製作了 Web 介面以便在此公開發布。
關於 CRC-32B 雜湊演算法
我不是數學家,但我會嘗試用一個簡單的類比來解釋這個雜湊函數。與許多密碼學雜湊函數不同,它並不是一個特別複雜的演算法,所以應該沒問題 ;-)
想像一下,你要寄一封信,但擔心它在到達收件人之前可能會損壞。你根據信件內容計算出一個 CRC-32 校驗和,並寫在信封上。收件者收到信件後,也可以計算這個校驗和,看看是否與你寫的內容一致。如果一致,則表示信件在寄送過程中沒有損壞或被篡改。
CRC-32 的計算過程分為四個步驟:
第一步:增加一些額外空間(填滿)
- CRC 會在訊息末尾添加一些額外的空間(就像盒子裡的包裝花生一樣)。
- 這有助於它更容易發現錯誤。
步驟二:神奇的尺(多項式)
- CRC-32 使用一種特殊的「神奇標尺」來測量數據。你可以把這個標尺想像成一個由凸起和凹槽組成的圖案(這就是多項式,但不用擔心這個詞)。 CRC-32 最常使用的「標尺」是固定圖案。
步驟 3:滑動標尺(除法過程)
- 現在,CRC 會用標尺沿著資訊滑動。每滑動到一點,它都會檢查標尺上的凸起和凹槽是否對齊。如果不對齊,CRC 就會記錄一次(這是透過簡單的異或運算實現的,就像撥動開關一樣)。它會一直滑動標尺並撥動開關,直到到達末端。
步驟 4:最終結果(校驗和)
- 用標尺劃過整個訊息後,你會得到一個很小的數字(32 位元),它代表原始資料。這個數字就像是訊息的唯一指紋。這就是 CRC-32 校驗和。
頁面上顯示的是 CRC-32B 版本,這主要是 PHP 的特性,它顛倒了位元順序(小端序與大端序)。只有當您確實需要與使用該版本的其他 PHP 應用程式相容時,才應該使用此版本。
我也有其他變體的計算器:
- 關聯
- 關聯
進一步閱讀
如果您喜歡這篇文章,您可能也會喜歡這些建議:
