信息摘要算法-CRC(循环冗余校验)

简介:

一、简述

  确切的说CRC不算是信息摘要算法,但是他的原理也是散列函数。他经历过很多版本的改进。现阶段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、算法是公开的。验证也很方便。上述算法调整下就可以做文件校验了

目录
相关文章
|
6月前
|
传感器 算法 数据格式
QT Modbus RTU调试助手(包含算法实现CRC MODBUS16校验)
QT Modbus RTU调试助手(包含算法实现CRC MODBUS16校验)
332 0
|
2月前
|
算法 数据安全/隐私保护 C++
超级好用的C++实用库之MD5信息摘要算法
超级好用的C++实用库之MD5信息摘要算法
61 0
|
3月前
|
算法 JavaScript 前端开发
消息摘要算法:MD5加密
消息摘要算法:MD5加密
57 1
|
3月前
|
数据采集 机器学习/深度学习 算法
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
|
4月前
|
人工智能 算法 大数据
算法金 | 推导式、生成器、向量化、map、filter、reduce、itertools,再见 for 循环
这篇内容介绍了编程中避免使用 for 循环的一些方法,特别是针对 Python 语言。它强调了 for 循环在处理大数据或复杂逻辑时可能导致的性能、可读性和复杂度问题。
51 6
算法金 | 推导式、生成器、向量化、map、filter、reduce、itertools,再见 for 循环
|
4月前
|
算法 测试技术 Python
python中算法无限循环(Infinite Loops)
【7月更文挑战第18天】
112 4
|
3月前
|
算法
【算法】递归总结:循环与递归的区别?递归与深搜的关系?
【算法】递归总结:循环与递归的区别?递归与深搜的关系?
|
5月前
|
存储 算法 C语言
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
|
4月前
|
算法 安全 数据安全/隐私保护
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
|
5月前
|
算法
数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)
数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)
412 1