免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: BIOO
打印 上一主题 下一主题

[算法] MD5保证tcp网络传输报文的一致性? [复制链接]

论坛徽章:
0
31 [报告]
发表于 2009-09-22 08:26 |只看该作者
原帖由 fromheaven 于 2009-9-21 14:30 发表
关键词:数字摘要, RSA, 公私钥对

不牵涉到数据加密的简单实现就是发送报文前先在发送方做一次md5,把计算出的值作为payload的一部分发送出去。接收方收到后,剥掉ip头,也对做载荷做一次md5,然后比较md5的值,如果一样说明内容未被篡改。

并不可靠
首先修改你的数据,然后对数据MD5,将MD5放在载荷中指定的位置
---------------------------------------------------------------
| MD5 |                         数据                                        |
---------------------------------------------------------------

要传输加密的同时还兼顾处理速率,最好的办法是用对称加密算法加密,用非对称加密算法对对称加密密钥进行加密
这个MD5的思路其实并不可靠,除非象BSD/linux等各种ISO发布方式,在不可更改的服务器上同时发布文件和文件的MD5,下载方经过校验后才知道有没有被篡改。如果MD5是在数据处理过程中产生的并且不是公示的,数据和数据的MD5同时修改以后,无法保证数据的完整性和准确性。

论坛徽章:
0
32 [报告]
发表于 2009-09-22 10:05 |只看该作者
这个是因为他获取的内容只是一个完整内容的分片, 而且来源是从网络上非安全节点获得的。 所以要做校验吧。

跟lz说的不是一会事情, lz说的是client怕被欺骗, 就是其实连接的不是自己的server,

TLS是干吗的, CA证书是干吗的, 就是解决 client and server彼此欺骗赖帐或者中间消息被串改等问题的。
==============
客户执意要求要md5校验文件一致性…………
不是某能决定用不用或者用什么的

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
33 [报告]
发表于 2009-09-22 15:03 |只看该作者
原帖由 BIOO 于 2009-9-21 09:45 发表
目前需要使用md5对tcp传输报文处理,以确保其一致性。
有没有demo,或者win或者unix都可以。
或者搜索的关键字。谢谢

#include "../include/md5.h"

#ifdef CHARSET_EBCDIC
#include <openssl/ebcdic.h>
#endif

unsigned char *MD5(const unsigned char *d, unsigned long n, unsigned char *md)
{
MD5_CTX c;
static unsigned char m[MD5_DIGEST_LENGTH];

        if (md == NULL) md=m;
        MD5_Init(&c);
#ifndef CHARSET_EBCDIC
        MD5_Update(&c,d,n);
#else
        {
                char temp[1024];
                unsigned long chunk;

                while (n > 0) {
                        chunk = (n > sizeof(temp)) ? sizeof(temp) : n;
                        ebcdic2ascii(temp, d, chunk);
                        MD5_Update(&c,temp,chunk);
                        n -= chunk;
                        d += chunk;
                }
        }
#endif
        MD5_Final(md,&c);
        memset(&c,0,sizeof(c)); /* security consideration */
        return(md);
}


为何用MD5?杀鸡用牛刀,16个字节,运行慢。
CRC32,CRC16不好么?

[ 本帖最后由 yulihua49 于 2009-9-22 15:05 编辑 ]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
34 [报告]
发表于 2009-09-22 15:09 |只看该作者
为啥要用md5呢?如果是为了加密的话md5不好,已经被破解了的算法。为了校验的话md5也不好,太慢。

论坛徽章:
0
35 [报告]
发表于 2009-09-22 15:14 |只看该作者
MD5的决定是领导说了算的不是某能决定的。
偶认为专线连接,tcp,校验都是多余的。
谢谢您的real code

论坛徽章:
0
36 [报告]
发表于 2009-09-22 15:27 |只看该作者
MD5的决定是领导说了算的不是某能决定的。
偶认为专线连接,tcp,校验都是多余的。
谢谢您的real code

论坛徽章:
0
37 [报告]
发表于 2009-09-22 15:29 |只看该作者
简单的流程:
1、侦听某端口A
2、接受业务报文
3、对业务报文解压缩lz77
4、md5校验文件一致性
5、转发经过md5校验一致的报文到端口b

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
38 [报告]
发表于 2009-09-22 15:31 |只看该作者

回复 #35 BIOO 的帖子

领导果然很sb

一个包一个md5校验,会死人的

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
39 [报告]
发表于 2009-09-22 15:35 |只看该作者
对于小数据包的校验,任何复杂校验算法都是浪费。把数据四个字节或者八个字节分组,然后直接做数值加法就够了,这种简单的校验算法对于小于1M的数据包绝对够用。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
40 [报告]
发表于 2009-09-22 16:28 |只看该作者
原帖由 koolcoy 于 2009-9-22 15:35 发表
对于小数据包的校验,任何复杂校验算法都是浪费。把数据四个字节或者八个字节分组,然后直接做数值加法就够了,这种简单的校验算法对于小于1M的数据包绝对够用。

TCP本来就做了校验和。但校验和不是很好的办法,加法交换律,各项位置对调是验不出来的。十几年前真发现过一次传输错误,而tcp没验出来,以后再没发现过。
对于<4K的包,CRC16足够,大的,CRC32也够了,运算速度是足够快的。实际上,CRC是最广泛用于通信过程的。而MD5主要用于数字签名。
相关软件open SSL里都有,自己下载吧。

[ 本帖最后由 yulihua49 于 2009-9-22 16:35 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP