JAVA迴圈冗餘校正(CRC32)__JAVA

來源:互聯網
上載者:User
CRC32簡介

CRC校正公用程式庫 在資料存放區和資料通訊領域,為了保證資料的正確,就不得不採用檢錯的手段。在諸多檢錯手段中,CRC是最著名的一種。CRC的全稱是迴圈冗餘校正。
CRC32檢錯能力極強,開銷小,易於用編碼器及檢測電路實現。從其檢錯能力來看,它所不能發現的錯誤的幾率僅為0.0047%以下。從效能上和開銷上考慮,均遠遠優於同位及算術和校正等方式。因而,在資料存放區和資料通訊領域,CRC無處不在:著名的通訊協議X.25的FCS(幀檢錯序列)採用的是CRC-CCITT,ARJ、LHA等壓縮公用程式軟體採用的是CRC32,磁碟機的讀寫採用了CRC16,通用的映像儲存格式GIF、TIFF等也都用CRC作為檢錯手段。 CRC實現

package com.jianggujin.codec;import java.io.IOException;import java.io.InputStream;import java.util.zip.CRC32;/** * CRC32 *  * @author jianggujin * */public class HQCRC32{   private static HQCRC32 crc32 = new HQCRC32();   public static HQCRC32 getInstance()   {      return crc32;   }   private HQCRC32()   {   }   private static final int STREAM_BUFFER_LENGTH = 1024;   public long encrypt(byte[] data)   {      CRC32 crc32 = new CRC32();      crc32.update(data);      return crc32.getValue();   }   public long encrypt(InputStream data) throws IOException   {      final byte[] buffer = new byte[STREAM_BUFFER_LENGTH];      int read = data.read(buffer, 0, STREAM_BUFFER_LENGTH);      CRC32 crc32 = new CRC32();      while (read > -1)      {         crc32.update(buffer, 0, read);         read = data.read(buffer, 0, STREAM_BUFFER_LENGTH);      }      return crc32.getValue();   }}

測試代碼:

import org.junit.Test;import com.jianggujin.codec.HQCRC32;public class CRC32Test{   HQCRC32 crc32 = HQCRC32.getInstance();   @Test   public void encode()   {      byte[] data = "jianggujin".getBytes();      long result = crc32.encrypt(data);      System.err.println(result);   }}

測試結果:
724585211

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.