crc校验码计算器在线(超级CRC计算器HotCRC中的CRC出值碰撞有什么用途)
本文目录
- 超级CRC计算器HotCRC中的CRC出值碰撞有什么用途
- 超级CRC计算器HotCRC中的出值是什么
- 有哪些原因会导致CRC校验错误
- 超级CRC计算器HotCRC中CRC校验和的输出格式是什么
- 超级CRC计算器HotCRC中的CRC运算键按钮能实现何种操作
- 超级CRC计算器HotCRC中的明文是什么
- 超级CRC计算器HotCRC与第三方CRC计算器最大的不同是什么
超级CRC计算器HotCRC中的CRC出值碰撞有什么用途
HotCRC计算器中的初值碰撞应用相对出值碰撞保护版权信息要小的多。
CRC初值碰撞是在明文不变,结果不变,指定CRC初值后,“正运算”出CRC出值。
它的应用主要是设定初值和出值都不为特定值的CRC简写式。
特别是在明文不等长且明文长度不是权值长度的整数倍时,该不为特定值的这组初值和出值将是唯一的,故此时的CRC主要成员都是CRC
密钥了,例如逆向CRC8,需要穷举:
权值(256次)*方向(2次)*初值(256次)*出值(256次)
故当CRCn中的n足够大时,其CRC算法非常难以逆向或无法破逆向。
因为穷举的时间成本太高,可能是百年或万年等。
超级CRC计算器HotCRC中的出值是什么
HotCRC计算器的出值和其他第三方CRC计算器完全一样。
但是有不同(特点)的是HotCRC计算器里的密文的最后一组与出值异或后才是最终的CRC校验和。
在这里菜农可以告诉CRC协议攻防的双方,特别是防守的一方,“在CRC运算完后再对校验和异或一个值用于保护是绝对无效的,它只是改写了出值”。
在HotCRC计算器中,有一个“出值碰撞”,它可以用于数据信息和版权信息的CRC保护。它用到了CRC逆运算。
否则穷举碰撞非常麻烦。而菜农用CRC逆运算解决了CRC出值碰撞的问题。
有哪些原因会导致CRC校验错误
CRC校验是一种位运算验证方式,它比“累加和”或“异或”验证要好许多,因为任一位数据发生变化,校验和会剧烈扩散。
在选择CRC多项式即CRC算法后,对验证有影响的就是待校验的数据流了,如果数据流发生微弱的变化,对应的校验和将发生错误。
当然也可能出现数据流发生变化,校验和不发生变化的“奇特现象”!
这种现象就是所谓的“CRC碰撞”,即待校验的数据流发生变化,校验和不变。
CRC校验广泛用于数据传输通讯中,由于是有线或无线的数据传输,可能会受到电磁波等强烈干扰,数据流可能会发生变化,故必须用CRC校验验证。
同时也广泛应用于磁盘文件的校验,例如磁盘CRC错误或压缩文件的CRC错误。大多都是磁盘物理损坏。
当然也广泛用于软件版权或产品代码或数据的保护。它主要防止篡改版权信息或修改代码克隆产品。
菜农自80年代末就开始研究CRC,并在网络上免费提供CRC计算器HotCRC,它在网上流行十数年,是目前最优秀的CRC验证工具之一。
它可以在线或离线运行,也可以在任何平台运行,包括电脑和手机等许多应用。
超级CRC计算器HotCRC中CRC校验和的输出格式是什么
HotCRC计算器中的“结果”框就是CRC运算的最终校验和。
它的输出格式为了看着方便,永远按大端数据排列,即“结果”就是直读的校验和的16进制数。
特别注意:
在实际应用中,有些右移CRC运算后的校验和是按小端数据排列的。这里要特别注意!
如下图所示,正运算的结果是0xF3A6,校验和实际填写为A6 F3。
超级CRC计算器HotCRC中的CRC运算键按钮能实现何种操作
HotCRC计算器中的“运算”键按钮和第三方CRC计算器都是一样的操作。
它是对明文框内的待校验数据流进行CRC正运算。
特别注意“运算流”框的内容,它是HotCRC计算器用未公开的第6种CRC算法对明文进行读取运算的数据顺序流。从它上面可以看到右移算法小端数据是如何读取数据的。
在其他5种CRC算法中,数据流的读取是按字节顺序流读取的,故根本无大小端数据排列的概念。
超级CRC计算器HotCRC中的明文是什么
HotCRC计算器中的“明文”实际就是待校验数据流,为了界面显示两个汉字的要求,被命名“明文”。
因为HotCRC计算器有“计算”(实际就是CRC加密)和“还原”(实际就是CRC解密)功能,点击“还原”键按钮,待校验数据流即明文就会被改写。
明文的字符输入方式有很多,即HEX或ASCII或汉字(UTF-8或GB2312-80)等。
它也可以作为字符转换之用,例如选择输入方式为ASCII字符“0123456789ABCDEF”,将其填写到明文框,点击“运算”键按钮,此时得到密文。
再将输入方式改为“HEX”,然后再接着点击“还原”,此时的明文,就是原来明文(ASCII)被转换后的HEX码“30313233343536373839414243444546”。
超级CRC计算器HotCRC与第三方CRC计算器最大的不同是什么
HotPower超级CRC计算器与第三方CRC计算器名词解释与对照及操作:
权值:Poly,CRC多项式的数字表达。HotPower超级CRC计算器采用最符合内部运算的权值。
初值:Init,CRC初始化预置值。
出值:XorOut,CRC运算后输出前的异或值。
结果:CRC最终的运算结果。
左移:Refin=False,Refout=False。数据或结果输入和输出都不反转。
右移:Refin=True,Refout=True。数据或结果输入和输出都反转。
大端:数据或结果输入和输出都不反转。数据或结果按大端排列,例如0x1234,存储顺序为0x12,0x34。
小端:数据或结果输入和输出都反转。数据或结果按小端排列,例如0x1234,存储顺序为0x34,0x12。
反转:在Refin=True,Refout=True时,数据或结果按小端排列,可以点击“明文”或“结果”快速切换。
反序:在Refin=True,Refout=True时,第三方CRC计算器权值为0x1021,内部运算运算实际反序为0x8408。
例如:CRC16=X16+X12+X5+1,Poly=0x1021或0x8408。这要和内部运算关联。可以点击“权值”快速切换。
可逆:当CRC多项式中包含“+1”时,CRC可逆(左移CRC权值最低位为1,右移CRC权值最高位为1),否则不可逆。
简写式:HotPower超级CRC计算器独特的CRC多项式的简写式,它包含了CRCn、左右移、权值、初值和出值。
例如:CRC16=X16+X12+X5+1,Poly=0x1021,Init=0xFFFF,XorOut=0x0000。Refin=False,Refout=False。
简写式表示为:CRC16L_1021_FFFF_0000
运算键:HotPower超级CRC计算器支持常见的26种CRC运算,并且提供支持32种任意CRC运算的HotCRC。
选择一种CRC后,将待校验的数据填入“明文”框内,点击“运算”,运算后的校验和会出现在“结果”框中。
还原键:CRC逆运算,可以根据“CRC密文”(CRC运算的中间结果流)还原出“CRC明文”,
这是HotPower超级CRC计算器与第三方CRC计算器最大的不同。
特别注意:
由于早期CRC的实现由硬件完成,故有左移和右移(反转),权值也有反序之别。
HotPower超级CRC计算器将Refin和Refout的组合用“左移”或“右移”替代。反转和反序内部自动完成。
第三方CRC运算器的权值可能采用反序,这就导致了内部运算的复杂度,故可能和本CRC运算器的权值互为反序。
例如:
CRC16=X16+X12+X5+1,Poly=0x1021,Refin=True,Refout=True。
即右移CRC16,可逆,权值最高位为“1”,故HotPower超级CRC计算器取权值Poly=0x8408(0x1021的反序)
菜农HotPower@163.com 2018.4.18 于西安雁塔菜地
更多文章:
java生成log日志文件(java 如何配置log4j日志文件保存路径)
2024年7月24日 02:38
正则表达式匹配字母开头(求ASP正则表达式,匹配必须以任意字母开头,包含字母数字下划线,且必须以.html结尾即匹配html文件名)
2024年6月25日 13:01
nativecode(function tostring native code 怎么办)
2024年7月10日 22:59
defines(《群星》修改defines.lua数值后无法进入游戏怎么办)
2023年12月13日 07:40
fopen打开二进制文件(若要用fopen函数打开一个新的二进制)
2024年6月28日 06:57
ie禁用javascript(本地IE如何禁止,打开某网站时的JS调用)
2024年7月3日 08:58
font weight solid(百度空间 CSS 求助)
2024年7月13日 13:10
五毛特效app软件下载(能p各种火焰的是什么手机p图软件实例如图)
2024年7月22日 15:22