欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中循環(huán)冗余校驗(CRC32)的實現(xiàn)

 更新時間:2017年10月17日 08:34:12   作者:蔣固金  
CRC校驗實用程序庫在數(shù)據(jù)存儲和數(shù)據(jù)通訊領(lǐng)域,為了保證數(shù)據(jù)的正確,就不得不采用檢錯的手段,下面這篇文章主要給大家介紹了關(guān)于Java中循環(huán)冗余校驗(CRC32)實現(xiàn)的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

本文主要給大家介紹了關(guān)于Java實現(xiàn)循環(huán)冗余校驗(CRC32)的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細的介紹吧。

CRC32簡介

CRC校驗實用程序庫 在數(shù)據(jù)存儲和數(shù)據(jù)通訊領(lǐng)域,為了保證數(shù)據(jù)的正確,就不得不采用檢錯的手段。在諸多檢錯手段中,CRC是最著名的一種。CRC的全稱是循環(huán)冗余校驗。

CRC32檢錯能力極強,開銷小,易于用編碼器及檢測電路實現(xiàn)。從其檢錯能力來看,它所不能發(fā)現(xiàn)的錯誤的幾率僅為0.0047%以下。從性能上和開銷上考慮,均遠遠優(yōu)于奇偶校驗及算術(shù)和校驗等方式。因而,在數(shù)據(jù)存儲和數(shù)據(jù)通訊領(lǐng)域,CRC無處不在:著名的通訊協(xié)議X.25的FCS(幀檢錯序列)采用的是CRC-CCITT,ARJ、LHA等壓縮工具軟件采用的是CRC32,磁盤驅(qū)動器的讀寫采用了CRC16,通用的圖像存儲格式GIF、TIFF等也都用CRC作為檢錯手段。

CRC實現(xiàn)

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);
  }
}

測試結(jié)果:

724585211

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • java中List刪除時需要的注意事項

    java中List刪除時需要的注意事項

    最近在利用java中的LIST在刪除時發(fā)現(xiàn)了一個錯我,通過查找相關(guān)的資料終于解決了,覺著有必要分享處理給同樣遇到這個問題的朋友參考,下面這篇文章主要介紹了java中List刪除時需要的注意事項,需要的朋友可以一起來看看吧。
    2017-01-01
  • @RereshScope刷新的原理詳解

    @RereshScope刷新的原理詳解

    在配合配置中心修改配置讓應(yīng)用自動刷新配置時,我們要在需要感知配置變化的bean上面加上@RereshScope。如果我們不加上這注解,那么有可能無法完成配置自動刷新。本文就來和大家講講@RereshScope刷新的原理,需要的可以參考一下
    2022-12-12
  • java開發(fā)WMS倉庫商品預(yù)警需求示例解析

    java開發(fā)WMS倉庫商品預(yù)警需求示例解析

    這篇文章主要為大家介紹了java開發(fā)WMS倉庫商品預(yù)警需求示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • kafka生產(chǎn)實踐(詳解)

    kafka生產(chǎn)實踐(詳解)

    下面小編就為大家?guī)硪黄猭afka生產(chǎn)實踐(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • springboot實用配置詳細圖文教程

    springboot實用配置詳細圖文教程

    SpringBoot從本質(zhì)上來說就是Spring,它通過了一些自己的特性幫助我們簡化了Spring應(yīng)用程序的開發(fā),下面這篇文章主要給大家介紹了關(guān)于springboot實用配置的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • Jmeter的接口測試詳細步驟并實現(xiàn)業(yè)務(wù)閉環(huán)

    Jmeter的接口測試詳細步驟并實現(xiàn)業(yè)務(wù)閉環(huán)

    這篇文章主要介紹了Jmeter的接口測試詳細步驟并實現(xiàn)業(yè)務(wù)閉環(huán),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • java list與數(shù)組之間的轉(zhuǎn)換詳細解析

    java list與數(shù)組之間的轉(zhuǎn)換詳細解析

    以下是對java中l(wèi)ist與數(shù)組之間的轉(zhuǎn)換進行了詳細的分析介紹,需要的朋友可以過來參考下
    2013-09-09
  • Java自定義線程池的實現(xiàn)示例

    Java自定義線程池的實現(xiàn)示例

    本文主要介紹了Java自定義線程池的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • SpringMVC 中文亂碼的解決方案

    SpringMVC 中文亂碼的解決方案

    這篇文章主要介紹了SpringMVC 中文亂碼的解決方案,幫助大家更好的理解和學(xué)習(xí)使用SpringMVC,感興趣的朋友可以了解下
    2021-04-04
  • Java使用split截取字符串過程解析

    Java使用split截取字符串過程解析

    這篇文章主要介紹了Java使用split截取字符串過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02

最新評論