知乎專欄 | 多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者” |
CRC校驗實用程式庫在數據存儲和數據通訊領域,為了保證數據的正確,就不得不採用檢錯的手段。在諸多檢錯手段中,CRC是最著名的一種。CRC的全稱是循環冗餘校驗,其特點是:檢錯能力極強,開銷小,易於用編碼器及檢測電路實現。從其檢錯能力來看,它所不能發現的錯誤的幾率僅為0.0047%以下。從性能上和開銷上考慮,均遠遠優於奇偶校驗及算術和校驗等方式。因而,在數據存儲和數據通訊領域,CRC無處不在:著名的通訊協議X.25的FCS(幀檢錯序列)採用的是CRC- CCITT,ARJ、LHA等壓縮工具軟件採用的是CRC32,磁碟驅動器的讀寫採用了CRC16,通用的圖像存儲格式GIF、TIFF等也都用CRC作為檢錯手段。
<?php $checksum = crc32("The quick brown fox jumped over the lazy dog."); printf("%u\n", $checksum); ?>
package cn.netkiller.security; import java.nio.ByteBuffer; import java.util.zip.CRC32; public class CRC { public static void main(String[] args) { final CRC32 crc32 = new CRC32(); ByteBuffer data = ByteBuffer.wrap("http://www.netkiller.cn".getBytes()); crc32.update(data); System.out.println(crc32.getValue()); } }