首页
社区
课程
招聘
[原创]关于学习《加密与解密》中CRC算法的心得
2007-3-21 17:04 4732

[原创]关于学习《加密与解密》中CRC算法的心得

2007-3-21 17:04
4732
CRC以前经常听得过,但具体算法一直不知道,在看《加密与解密》一书中,提到了该算法的实现过程,但看来看去一直不是很明白,最后,通过反复理解,终于明白是怎么一回事,现在将我的心得与有和我一样的困惑的朋友分享一下:

原文描述如下:
1、将寄存器向右边移动一个字节。
2、将刚移出的那个字节与我们的字符串中的新字节进行XOR运算,得出一个指向值表table[0..255]的索引。
3、将索引所指的表值与寄存器做XOR运算。
4、如果数据没有全部处理完,则跳到步骤1。

经过我反复理解后,觉得这样说可能更容易明白一点:
DestString = 需要计算CRC码的字符串
i=为字符串的索引,初始为0.
CRC寄存器=用于保存最终的CRC码的寄存器(可设为EAX或者其它通用寄存器)
1.将CRC寄存器中的位全部初始为1,即mov eax,-1
2.将CRC寄存器中低8位与DestString[i]字符异或,i++,得到一个CRC表的索引
3.根据第2步得到的索引从CRC表中找出相应的值.
4.将CRC寄存器右移8位,然后与第3步得到的值异或,将最终结果放入CRC寄存器
5.循环处理2-4步,直到全部字符处理完毕

最终CRC寄存器中就是字符串的CRC码

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

收藏
免费 0
打赏
分享
最新回复 (1)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2007-3-21 17:35
2
0
论坛的网络有问题,那边的帖是看不到的。。
游客
登录 | 注册 方可回帖
返回