关于php实现crc冗余算法的验证和补全问题

关于php实现crc冗余算法的验证和补全问题,第1张

首先,要纠正一个概念上的错误,CRC算法是用来验证完整性的算法,它并不能提供错误修复的能力。

如果需要在PHP中使用CRC算法,可以直接使用PHP中的crc32函数。有关此函数的使用,可以参考以下链接:

http://cn2.php.net/manual/en/function.crc32.php

http://www.w3school.com.cn/php/func_string_crc32.asp

如果需要在接收端进行错误的修复,则需要使用某种前向错误修正算法,比如里德-索罗门算法等,这些算法在PHP库中好像没有实现。相关的资料可以查看:

http://zh.wikipedia.org/wiki/%E9%87%8C%E5%BE%B7-%E6%89%80%E7%BD%97%E9%97%A8%E7%A0%81

http://zh.wikipedia.org/wiki/%E5%89%8D%E5%90%91%E9%8C%AF%E8%AA%A4%E6%9B%B4%E6%AD%A3

CRC:循环冗余校验(Cyclic Redundancy Check, CRC)。

CRC是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。

CRC简介:

在数据传输过程中,无论传输系统的设计再怎么完美,差错总会存在,这种差错可能会导致在链路上传输的一个或者多个帧被破坏(出现比特差错,0变为1,或者1变为0),从而接受方接收到错误的数据。

为尽量提高接受方收到数据的正确率,在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。检测的方式有多种,常见的有奇偶校验、因特网校验和循环冗余校验等。

扩展资料:

CRC应用场合:

CRC校验实用程序库 在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。在诸多检错手段中,CRC是最著名的一种。

CRC的全称是循环冗余校验,其特点是:检错能力强,开销小,易于用编码器及检测电路实现。从其检错能力来看,它所不能发现的错误的几率仅为0.0047%以下。从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式。

因而,在数据存储和数据通讯领域,CRC无处不在:著名的通讯协议X.25的FCS(帧检错序列)采用的是CRC-CCITT,WinRAR、NERO、ARJ、LHA等压缩工具软件采用的是CRC32,磁盘驱动器的读写采用了CRC16,通用的图像存储格式GIF、TIFF等也都用CRC作为检错手段。下面介绍硬件生成与计算CRC的过程。

参考资料:百度百科---CRC


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11599176.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存