信息摘要算法-CRC(循环冗余校验)
2023-09-14 08:59:51 时间
一、简述
确切的说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、算法是公开的。验证也很方便。上述算法调整下就可以做文件校验了
缓存键重复、冲突带来的数据读取错误 第二次了,栽在这个问题上, 依然是出自缓存。 需要注意两个问题: 1.根据分类读的数据列表,缓存键需要带上分类ID/分类名称。 2.由于子模块比较多,缓存键命名的时候,整体搜一下是否已存在当前缓存键,否则容易出现多个模块公用一个缓存的现象,导致必有一处数据不对。
相关文章
- go 条件与循环结构
- 前台 - 循环
- pahlcon:循环调度(Dispatch Loop)或跳转
- Python快速学习04:循环 & 函数
- s:iterator循环输出数字
- Python3 循环语句
- C#基础——循环
- Python实现哈里斯鹰优化算法(HHO)优化循环神经网络回归模型(LSTM回归算法)项目实战
- 练习 2-8 编写一个函数rightrot(x, n),该函数返回将x循环右移(即从最右端移出的位将从最左端移入)n(二进制)位后所得到的值。
- BFS (1)算法模板 看是否需要分层 (2)拓扑排序——检测编译时的循环依赖 制定有依赖关系的任务的执行顺序
- 【数据结构与算法】什么是双向循环链表?以及实现过程
- 【数据结构与算法】单向循环链表(增加元素、删除元素、打印循环链表等功能)
- 数据结构和算法 递归/循环遍历二叉树
- 【排序算法】图解直接插入排序(图解堪比Debug显示每次循环结果)