阅读:1416回复:6
我可以这样吗??
要做一个加密的实验,想通过修改Ip 头中的内容来实现对数据的加密,这种想法是否可行??是否可以修改Ip 头中的checksum, 请问这个字段的内容是在什么时候用的,如果我在对等端将checksum 修正过来,是否可以达到正常通信的目的?? 还是说在底层的驱动中会检查这个字段,从而丢弃数据包??
|
|
沙发#
发布于:2003-05-07 14:58
可以,只是需要注意不同的checksum有不同的计算范围
|
|
|
板凳#
发布于:2003-05-07 15:22
谢谢你的指点。
我在PMSend() 中修改了IpHeader 的 checksum 内容,在PtReceive() 中将checksum 修改回来。在两台机器上试验,发现互相都ping 不通,不知道是什么原因??两台机器处于局域网上同一个网段,不存在转发的问题。 |
|
地板#
发布于:2003-05-07 18:01
不同类型的数据包有不同的计算checksum的计算范围,
不能所有的数据包都用同一种方法计算checksum 具体可以看有关的rfc文件,前面也有贴子详细说明 |
|
|
地下室#
发布于:2003-05-08 10:13
谢谢你热烈的参与,给分了先。
但是你好像没有明白我的意思,我并不是需要计算checksum。我现在只针对ip 包进行试验,我的做法很简单,就是简单的在发送的时候将checksum + 1, 在接受的时候将checksum - 1。 这样,如果只是在对等端的上层进行校验,就能够正常通信,因为我已经将checksum 更正过了。但是结果并不是这样,不知道是什么原因。 |
|
5楼#
发布于:2003-05-08 12:59
因为发包的时候的校验和不一定是TCPIP算的。
|
|
|
6楼#
发布于:2003-05-12 10:24
谢谢大家的参与,问题已经解决。错误是我自己造成的,就是在发送的时候包的提取不对,经过修改,一切ok!!
|
|