世界上最简单的摘要算法: 奇偶校验编码

HMAC的图解 一 什么是HMAC HMAC是一种使用单向散列函数来构造消息认证码的方法,其中HMAC中的H就是Hash的意思。 HMAC中所使用的单向散列函数并不仅限于一种,任何高强度的单向散列函数都可以被用于HMAC,如果将来设计出的新的单向散列函数,也同样可以使用。 使用SHA-1、SHA-224、SHA-256、SHA-384、SHA-512所构造的HMAC,分别称为HMAC-SHA1、HMAC-S... 阅读详情

传说程序圈有个老哥可以口算md5, 虽然不知道真假, 但是我们终于可以说, 不就是摘要算法么, 我也能口算!

原来真的有一种特殊的摘要算法简单到摘要值只有1个bit, 那就是: 奇偶校验编码.

我们都知道摘要(digest)算法是一种信息有损的算法, 用于对源数据进行抽象的描述, 输出值(消息)通常是固定长度的, 例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有160比特位的输出,SHA-1的变体可以产生192比特位和256比特位的消息摘要。一般认为,摘要的最终输出越长,该摘要算法就越安全。

于是, 又因为数学理论告诉我们, 任何长度>=0都是合理的, 那么当消息的长度等于1会诞生出什么样的算法呢? 于是数学家们就兴冲冲的去研究length===1的摘要算法了, 结果还真设计出来一个有用的东西: 奇偶校验摘要.

由于1bit的消息表示能力非常有限, 那么如何完美的利用这1bit的信息呢? 最容易想到的就是, 1bit可以表示原数据中"1"(或"0")的个数的奇偶性, 这也就是奇偶校验的核心算法...

卵用在何处?

hash算法可以验证大量数据的完整性, 因为2个不同数据生成相同的hash值的概率可以忽略, 但是如果hash值只有1bit的话, 概率就是50%了, 根本防不住数据破坏攻击...

可以防住一些超罕见的自然灾害

比如宇宙射线, 狂甩机械盘等操作, 有可能将某一个bit正负颠倒, 这时候通过奇偶校验就可以检测出来, 但是如果偶数个bit同时出错就无解了, 这也是1bit奇偶摘要的局限性, 但1bit成本超低的特点加上2个比特同时出错的概率太小太小, 奇偶校验得到了广泛应用, 无论是你的内存还是外存, 通过一个异或门实现.

How It Works

奇偶校验可描述为:给每一个码字加一个校验位,用它来构成奇性或偶性校验。可以看出,附加码元d2,是简单地用来使每个字成为偶性的。因此,若有一个码元是错的,就可以分辨得出,因为奇偶校验将成为奇性。奇偶校验编码通过增加一位校验位来使编码中1个个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。因为其利用的是编码中1的个数的奇偶性作为依据,所以不能发现偶数位错误。

所以奇偶校验算法只能查错, 并不能纠错(定位错误)


注: 我在<计算机组成原理>上发现了这个算法, 为了记住它我才使劲思考, 最终将它归纳进摘要算法大家族, 这完全是我自己定义的, 并么有官方承认, 但自认为并没有定义错误(哈哈)

实现

具体实现上,肯定不能计算数据中1的个数,然后除以2取模来判断奇偶性,因为这样会浪费资源,最高效的算法是通过异或门来实现,比如图中3个bit之间xor运算得到输出值Y,输人的“1”为偶数个时,输出Y=0。

奇偶校验(附代码实现) 定义 奇偶校验(Parity Check)是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。 简单来说就是: 奇校验:使完整编码(有效位和校验位)中的"1"的个数为奇数个; 偶校验:使完整编码(有效位和校验位)中的"1"的个数为偶 阅读详情

相关推荐

[计算机组成原理]奇偶校验

文章目录一、奇偶校验的基本原理二、奇偶校验的特点三、奇偶校验的码距四、改进的奇/偶校验五、关于奇/偶校验应用的讨论 一、奇偶校验的基本原理 1、增加冗余项(校验位) 有效信息(k位) 校验信息(r=1位) 2、编码:根据有效信息计算校验信息位,使校验码(数据+1位校验信息)中 1 的个数满足奇/偶校验的要求。 0001 −&gt;000110001\ -&g...

shiawaseli的博客 1万+

数字信息摘要常见算法

编解码算法 1. Hex 编码将二进制数据按16进制转换为字符串,1字节=2个字符,编码后体积为2倍。 2. Base64由MIME规范定义的编码算法,其将3个字节(24位)编码为4个字符。字符集包括64个,可表示6二进制位的数据,因此一个字符对应一组6bit的数据。编码后体积约为4/3倍,针对不足位数用=补齐。 HASH 算法 通常也称散列算法...

weixin_34010566的博客 384

低密度奇偶校验码LDPC(六)——SPA和积译码算法

SPA 的核心是,在因子图中,一个因子节点在边 𝑥上的输出消息是和沿着除 𝑥之外的所 有其他边输入到该节点的消息的乘积,并在除 𝑥之外的所有变量上求和。

通信系统、数字信号处理、FPGA 2723

数据摘要算法(MD5,SHA,fastsum等)简单自结

1.数据摘要算法,简单的理解就是它是一个算法函数,通过该函数可以将一个很长的数据生成一个固定长度的摘要信息。数据摘要算法就是一种单向散列函数,即计算一段数据的散列值很容易,但是根据散列推算出原始数据却是几乎不可能的。 单向散列函数生成的散列值,就相当于消息的“指纹”。单向散列函数有一个输入和一个输出,其中输入成为消息(message),输出成为散列值(hash value)。单向散列函数可以根据...

@_囚徒-2018_的家园 3559

信道编码:编码FEC 前向纠错码

​FEC:全称Forward Erro Correction,就是前向纠错码。 一、重复码 将同一数据重复多次发送,这就是重复码。 接收端根据少数服从多数的原则进行译码。例如:发送端将0编码为000发送,如果接收到的是001、010、100,就判为0;发送端将1编码为111发送,如果接收到的是110、101、011,就判为1。 重复码有一个很大的问题是:传输效率很低,传输效率只有1/3。 二、分组码 将k位信息比特分为一组,增加少量多余码元,共计n位,这就是分组码,一般记为(n,k)分组码。..

小仲0630的博客 1万+

奇偶校验编码规则详解:零基础理解二进制校验

通过简单易懂的方式讲解奇偶校验的原理与应用,帮助初学者掌握二进制数据中如何利用奇偶性检测传输错误,深入理解奇偶校验在通信中的实际作用。

weixin_34618526的博客 1091

XOR 加密简介

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34354945的博客 342

计算机底层:奇偶校验码

因此只要将数据对应的四种状态设为合法状态,冗余的四种状态设为非法状态,那么计算机校验时,如果发现数据是非法状态的数据,那么计算机就会知道,这个数据在传输过程中发生了改变。如果在使用偶校验码在数据传输时,如果数据传输时改变了奇数个,那么接收方会发现这个信息发生了改变,如果数据传输时改变了偶数个,那么接收方就会认为这个数据是合法的。如果在使用奇校验码在数据传输时,如果数据传输时改变了偶数个,那么接收方会发现这个信息发生了改变,如果数据传输时改变了奇数个,那么接收方就会认为这个数据是合法的。

srhqwe的博客 3475

五分钟搞懂摘要算法

摘要算法又称哈希算法、散列算法。摘要也称哈希值,表示输入任意长度的数据,都会输出固定长度的数据。通过摘要算法(比如MDS和SHA-1)就可以得到该哈希值。算法输出长度MD5128bitSHA-1160bitSHA-256256bit。

xnxqwzy的博客 839

二维奇偶校验的MATLAB实现与分析

奇偶校验是一种简单的错误检测机制,在数据传输或存储过程中用来检测单比特错误。它依赖于为每个数据单元附加一个额外的比特,该比特称为校验位。校验位的值取决于数据位中1的数量。如果数据中包含偶数个1,那么校验位会被设置为1,使得整体中1的数量为偶数(偶校验);如果数据中包含奇数个1,则校验位为0(奇校验)。MATLAB(Matrix Laboratory)是一种高级数学计算软件,广泛应用于工程、科学、教育以及经济分析等领域。它提供了一个交互式环境,以及一系列内置函数,用于数据可视化、算法开发以及数值计算。

weixin_42452483的博客 1359

MD5口算算法.txt

MD5口算算法解析,教你如何口算MD5的秘诀,学会以后可以用来装b。

什么是奇偶校验原理?奇校验、偶校验、校验位(单比特奇偶校验、两维奇偶校验(矩阵校验或交叉奇偶校验))

奇偶校验是一种简单且易于实现的错误检测技术。虽然它不能解决所有的错误情况,但其低成本和实用性使它成为许多通信和存储系统的首选错误检测方法。随着技术的发展,更复杂的错误检测和纠正算法被开发出来,但奇偶校验仍然是计算机科学教育和初级通信系统中的重要组成部分。

Dontla的博客 10万+

关于Arduino中的常用函数

一、I/O函数 二、时间函数 三、数学函数 abs 返回其参数的无符号值 【abs(12)返回12,abs(-12)也返回12】 constrain 限制一个数字以阻止它超出范围。第一个参数是被限制的数字,第二个参数是范围区间的开始,第三个参数是允许的数字范围区间的结尾。 【constrain(8,1,10)返回8,constrain(11,1,10)返回10,constrain(0,1,10)返回1】 map 将一个范围内的数字映射到另一个范围。第一个参数是要映射到数字,第二个和第三个参数是from范围(

TREE的博客 7323

Security ❀ 加密算法+摘要算法+Base64编码 理论详解

本文介绍了信息安全领域三类主要加密算法:对称加密、非对称加密和摘要算法,重点阐述了对称加密算法中的DES和AES标准。主要内容包括:1)DES加密原理及ECB、CBC两种加密模式的特点与Python实现;2)AES加密标准的基本特性及ECB模式的代码示例。通过具体的Python代码演示,展示了如何使用pycryptodome库实现数据加密解密过程,包括数据填充、加密操作和结果验证等关键步骤。文章为理解常见对称加密算法提供了实践指导。

无糖可乐没有灵魂 1131

实测对比:DeepSeek、豆包、千问三大AI模型生成测试用例谁更强?(附完整代码)

本文通过实测对比了DeepSeek、豆包、千问三大AI模型在生成测试用例方面的表现。文章提供了完整的Python代码实现,详细分析了各模型在用例完整性、准确性、边界覆盖及幻觉控制等维度的差异,并分享了工程化集成与多模型融合等优化策略,旨在帮助测试团队选择合适工具以提升工作效率。

ik6789012的博客 957

动手学Moveit2 | 运行配置好的机械臂功能demo

通过这个小demo你可以直观的感受moveit2的强大,但还有很多需要我们探索的,比如机械臂是如何规划的,规划的过程中如何结合环境信息,规划的时候机械臂如何求解,如何和真实的机械臂对接等等,这些都需要你来进一步探索,今天就到这里,明天给大家秀一下小仙女焊的fishbot运控板。

生活不止眼前的苟且 8883

奇偶校验码编码设计

奇偶校验码编码设计 一.基础内容 由信息位中“1”的个数得到校验位为“0”or为“1”. 对其进行奇校验: 信息位有奇数个“1”,则校验位为“0”。 信息位有偶数个“1”,则校验位为“1”。 对其进行偶校验: 信息位有奇数个“1”,则校验位为“1”。 信息位有偶数个“1”,则校验位为“0”。 校验码:校验位+信息位 方法: 奇校验码进行同或 偶校验码进行异或 p=1,出错;p=0,正确。 为什么要用这种编码方式

a20050714的博客 8565

3D深度饼图的QT实现

首先,我们需要创建一个QT项目并创建一个窗口,用于显示我们的饼图。在QT Creator中,选择创建一个新的QT Widgets应用程序项目,并创建一个新的窗口类。在本文中,我将介绍如何使用QT实现一个3D深度饼图(Pie 3D)的可视化效果。在构造函数中,我们将创建一个饼图(QChartView)并设置饼图的数据。这是一个简单的示例,您可以根据需要自定义和扩展代码来创建更复杂的饼图。现在,我们已经完成了3D深度饼图的QT实现。您将看到一个具有相应数据的3D深度饼图显示在窗口中。3D深度饼图的QT实现。

CodeJolt的博客 277

计算机组成原理logisim实验二:奇偶校验设计实验

校验码是用于提升数据在时间(存储)和空间两个维度上的传输可靠性的机制,其主要原理是在被校验数据(原始数据)中引入部分冗余信息(校验数据),使得最终的校验码(原始数据十校验数据)符合某种规则,当校验码中某些位发生错误时(原始数据、校验数据都有可能发生错误),会破坏预定规则,从而使得错误可以被检测,甚至可以被纠正。奇校验约定的编码规则是让整个校验码(包含原始数据和校验位)中1的个数为奇数,而偶校验约定的编码规则是让整个校验码中 1的个数为偶数,设被校验信息 D=D1,D2,…最终生成的校验码为 D1,D2,…

2301_76929974的博客 1万+

5、癌症数据预处理技术与深度学习在癌症预测中的应用

本文详细介绍了癌症数据预处理技术和深度学习在癌症预测中的应用。针对CT扫描图像、X射线图像、超声图像、基因表达数据和文本数据等不同类型的癌症数据,分别阐述了去噪、插值、配准、归一化等预处理技术的具体方法。同时,分析了深度学习在乳腺癌、白血病和宫颈癌预测中的作用,结合相关影响因素探讨了模型的应用潜力。此外,还总结了深度学习在癌症预测中面临的挑战及未来发展方向,为癌症的早期诊断与精准预测提供了理论支持和技术参考。

alice7model的博客 123

AIGC算法工程师面试八股文深度解析与进阶指南:揭秘Diffusion Models核心原理与实战技巧

总结来说,Cosine Noise Scheduler 的核心优势在于它能够更巧妙地平衡信号和噪声的比例,在扩散过程的早期阶段更长时间地保留原始图像的细节信息,从而为去噪模型提供一个更友好的学习环境,最终带来更优异的生成质量。🚀

FJN110的博客 346

IMSI编码规则与奇偶校验算法

在TS311.02中,介绍了IMSI的编码规则,其中涉及到奇偶校验算法。本文以此为引子,简单介绍奇偶校验的C算法,可作为C练习题的素材。

A Flying Bird 1万+

在 TASKPROCESSING 上为 ABAP OData 服务添加多个系统别名:从原理到落地的完整实践

本文面向SAP Gateway与ABAP开发者,详细讲解如何在TASKPROCESSING OData服务上添加系统别名。首先介绍了系统别名的概念与设计初衷,阐述了添加别名的业务场景需求,包括多系统接入、用户分流和灰度发布等。随后提供了标准配置步骤,从SPRO路径到具体操作说明,并分享了三个实际案例说明如何实现跨区域统一待办、按用户角色分流和灰度发布。最后给出了验证方法和常见问题解决方案,帮助开发者掌握这项基础但关键的配置技能,实现服务路由的可控管理。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 137

低密度奇偶校验码LDPC(二)——LDPC编码方法

LDPC 编码算法给定奇偶校验矩阵H,LDPC 编码的目标是求解方程中的生成矩阵G。LDPC 编码器实现的两种通用编码方法是高斯消除方法和 RU 方法。

通信系统、数字信号处理、FPGA 4277

万字详解YOLOv8网络结构Backbone/neck/head以及Conv、Bottleneck、C2f、SPPF、Detect等模块

YOLOv8是由Ultralytics开发的最先进的目标检测模型,推升了速度、准确性和用户友好性的界限。YOLO这一缩写代表“你只看一次”(You Only Look Once),通过在一次网络传递中同时预测所有边界框,提升了算法的效率和实时处理能力。相比之下,其他一些目标检测技术需要经过多个阶段或过程来完成检测。YOLOv8在流行的YOLOv5架构上进行了扩展,在多个方面提供了改进。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 14万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

奇偶校验原理

关于奇偶校验   Ø奇偶校验原理:通过计算数据中“1”的个数是奇数还是偶数来判断数据的正确性。在被校验的数据后加一位校验位或校验字符用作校验码实现校验。 Ø校验位的生成方法   Ø奇校验:确保整个被传输的数据中“1”的个数是奇数个,即载荷数据中“1”的个数是奇数个时校验位填“0”,否则填“1”; 偶校验:确保整个被传输的数据中“1”的个数是偶数个,即载荷

zzqwater的博客 2万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: JSON Schema了解一下?
下一篇: 数学与软件
xosg
xosg 领域专家: 网络协议与安全技术领域 领域专家: 网络协议与安全技术领域
博客等级 码龄9年 1986粉丝 864原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xosg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值