专栏中心

EEPW首页 > 专栏 > HotWC3/CRC网上在线演算器升级(V3.01)支持非分组CRC32

HotWC3/CRC网上在线演算器升级(V3.01)支持非分组CRC32

发布人:0750long 时间:2009-07-25 来源:工程师 发布文章
 

 

点击直接运行: 112位HotWC3/CRC通用网上演算器V3.01

由于菜农在看雪论坛被群殴,无奈用程序验证菜农“补零”之说。

本来就是一个编程最基础的小问题,菜农编了一辈子程序,

逆向了一辈子,这样的问题根本不需要耗费俺的脑浆。

菜农被群殴之处:http://bbs.pediy.com/showthread.php?t=93968

菜农不想再多解释什么,和给定程序完全一样的结果,只是编程手法

不同,俺考虑的是通用和加密及解密等。

贴图为证:

点击开大图

点击开大图

点击开大图

点击开大图

下面出自:http://bbs.pediy.com/showthread.php?t=94282

菜农支持“非分组CRC32 ”并非主张应用此校验方法。所以升级只有此项。
 
CRC32就是分组32位的CRC冗余校验算法。
 
所谓“5位”不管是汇编和C都是要保证运算结果即表达式左值与右值的数据类型一致。
故小端时,程序内部在高24位补0(不是字符‘0’即0x30).
反之在大端,程序内部在低24位补0(不是字符‘0’即0x30).
 
内部补0程序将按给定的位数做CRC运算,由于不是分组位数的整数倍,程序强行终止。
对于循环不查表的将在第40次循环时结束,查表程序将在5次查表后退出。

外部人为补0(不是字符‘0’即0x30)后结果和内部补0是不同的,这样因为外部
补0凑齐了两组即64位,即64次环移和40次环移的结果肯定不同。
 
此时得到的校验和实际是另一个“满组”的明文对应的校验和。实际可认为“发生碰撞”
 
如:ascii="12345",hex=0x31,0x32,0x33,0x34,0x35
这需要2个32位数据变量即空间。
 
小端数据表示为0x34333231,0x00000035
大端数据表示为0x31323334,0x35000000(后补0)
大端数据表示为0x31323334,0x00000035(前补0),演算器遵守此规则。
 
由于http://www.hotc51.com/HotPower_HotWC3.html是按分组大端设计的,
故:
选择CRC右移32,初值=00000000,权值=EDB88320(自动选出)
入值=FFFFFFFF(输入的XOR值),出值=FFFFFFFF(输出的XOR值)。
输入明文=3433323135,点击“计算”
得到密文=641C1F5C340AC5E3
取出校验和(最后一组密文的取反结果)=~340AC5E3=CBF53A1C

可以看到输入和输出不等长,即
输入明文=3433323135
输出密文=641C1F5C340AC5E3  CRC64=CBF53A1C
 
此时点击“还原”,会发现:
输入明文=343332312D0B3C26
输出密文=641C1F5C340AC5E3   CRC64=CBF53A1C
 
即分组不全的3433323135可以用分组齐全的343332312D0B3C26替代。
 
这种分组不全的CRC校验方式很容易造成碰撞,故建议不要采用。
 
在一般CRC校验中,会利用CRC对角矩阵行列相等即主对角线为0
即加发一组最后的明文。来提高校验的真实性,虽然它也跑不过
“人为碰撞”之手。
 
例如(本坛vista下不能贴图):
输入明文=343332312D0B3C26340AC5E3
输出密文=641C1F5C340AC5E300000000   CRC64=FFFFFFFF
 
这只能保护后2组数据的完整,依然可碰撞第1组:
输入明文=FFFFFFFF4917237A340AC5E3
输出密文=00000000340AC5E300000000   CRC64=FFFFFFFF
 
输入明文=248EF9BE4917237B340AC5E3
输出密文=00000001340AC5E300000000   CRC64=FFFFFFFF
 
输入明文=926CF53C49172378340AC5E3
输出密文=00000002340AC5E300000000   CRC64=FFFFFFFF
 
输入明文=6DD90A9DB6E8DC85340AC5E3
输出密文=FFFFFFFF340AC5E300000000   CRC64=FFFFFFFF
 
我们可以制造2^32次个这样的碰撞,而非数学家的X.XXX%次的概率。
 
所以菜农搞的是“人为碰撞”,而非本坛软件的“真碰撞”。 

总之“CRC碰撞”对菜农来说,“只是敲还原键而已,没什么高深的理论”。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

Stellaris(群星)单片机的片上FLASH编程(英)

MCP 服务器很危险!这里有安全使用指南!

十几年前的PLC拆解,看起来相当过瘾!

嵌入式系统 2025-04-30

STARplug design wizard V1.0 (for Wi...

无锡村田电子荣登国家级健康企业优秀案例名单

MiTAC神雲科技于2025 OCP EMEA峰会发布新一代OCP服务器和开放固件创新技术

Stellaris(群星)单片机的时钟选择

用大白话讲一讲SATA、M2这一堆硬盘接口知识

元件/连接器 2025-04-30

建个数据中心机房需要多少钱?各类机房造价大总结!

各级数据中心技术要求,值得收藏学习!

STARplug TEA152X高效、低功耗电源管理器件 (英)

AI带动存储需求扩大:希捷Q3营收猛增30%!

网络与存储 2025-04-30

服务器是由哪些硬件构成的?附VISIO形状图/HP/HPE 服务器/存储!

AI服务器和普通服务器的区别

更多 培训课堂
更多 焦点
更多 视频

技术专区