JAVA加解密10-信息摘要算法-CRC(循環冗余校驗)

一、簡述
確切的說CRC不算是信息摘要算法,但是他的原理也是散列函數。他經歷過很多版本的改進?,F階段CRC-32算法是通信領域實現差錯控制的的主要應用。

二、模型分析(以傳遞壓縮數據模型為例):
甲方對自己的數據做循環冗余校驗(CRC)處理,然后向數據尾部追加冗余校驗碼,然后壓縮,發送數據給乙方
乙方解壓縮,分離數據和校驗碼。然后對分離出的數據進行CRC處理,看得出的冗余校驗碼和分離出的校驗碼是否一致。進而判斷數據的正確性。
三、java實現

package com.ca.test;
import java.util.zip.CRC32;
/**
 * 測試循環冗余校驗
 * @author kongqz
 * */
public class CRC {
    /**
     * @param args
     */
    public static void main(String[] args) {
        String str="測試CRC-32";
        CRC32 c32=new CRC32();
        c32.update(str.getBytes());
        String hex=Long.toHexString(c32.getValue());
        System.out.println("原文:"+str);
        System.out.println("CRC-32處理后:"+hex);
    }
}
控制臺輸出結果:
原文:測試CRC-32
CRC-32處理后:8734140f

四、總結
1、CRC32算法很常見。類似消息摘要算法,只不過它是將原文和摘要信息組合后發送給對方
2、算法是公開的。驗證也很方便。上述算法調整下就可以做文件校驗了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容