有没有一边上传一边算md5的Web服务器模块?

8 views
Skip to first unread message

est

unread,
Sep 29, 2008, 8:24:15 PM9/29/08
to 高性能网络编程邮件列表
有没有一边上传一边算md5的Web服务器模块?

最好还支持自定义算法的。。。md4, md5, md6, crc32, ed2k, sha1 等等

zhongqing zhang

unread,
Sep 29, 2008, 10:41:26 PM9/29/08
to dev4s...@googlegroups.com
自己写一个啊。

2008/9/30 est <electr...@gmail.com>

est

unread,
Sep 30, 2008, 2:24:23 AM9/30/08
to 高性能网络编程邮件列表
我就是自己写了一个,不能跑到满带宽,想找一个高性能的。。。

On Sep 30, 10:41 am, "zhongqing zhang" <flyd...@gmail.com> wrote:
> 自己写一个啊。
>
> 2008/9/30 est <electronix...@gmail.com>
>
>
>
> > 有没有一边上传一边算md5的Web服务器模块?
>
> > 最好还支持自定义算法的。。。md4, md5, md6, crc32, ed2k, sha1 等等- Hide quoted text -
>
> - Show quoted text -

张沈鹏

unread,
Oct 2, 2008, 12:01:53 AM10/2/08
to dev4s...@googlegroups.com
1.md5以及其他一些都很烧cpu,用crc32就可以了

2.用boost crc32 ,boost python 自己封装一个

est

unread,
Oct 2, 2008, 4:41:28 AM10/2/08
to 高性能网络编程邮件列表
crc32匹配的话不一定文件相同

crc32不匹配的话文件一定不相同。。。

lijie

unread,
Oct 2, 2008, 4:50:00 AM10/2/08
to dev4s...@googlegroups.com
md5没那么烧吧?用md5sum测试1.1G的文件,第一次10秒,第二次以后都是4秒。就算机器差点也还是足够快的。


2008/10/2 张沈鹏 <zsp...@gmail.com>

eSX

unread,
Oct 2, 2008, 11:59:17 AM10/2/08
to dev4s...@googlegroups.com
理论上什么样的checksum算法都会有重复的,只不过是多大的空间罢了。

eSX

unread,
Oct 2, 2008, 12:02:19 PM10/2/08
to dev4s...@googlegroups.com
如果都是软件实现,MD5不一定比CRC32慢,看看下面的。

A benchmark of hashes from the free Crypto++ library follows.Hash algorithm Relative cost
Adler-32 1.00
CRC-32 3.66
MD5 3.62
RIPEMD-256 5.89
SHA-1 6.04
SHA-256 11.56
SHA-512 9.45
Tiger 4.31
Whirlpool 16.14

> -----Original Message-----
> From: dev4s...@googlegroups.com [mailto:dev4s...@googlegroups.com]

eSX

unread,
Oct 2, 2008, 12:03:57 PM10/2/08
to dev4s...@googlegroups.com
另外,MD5算法自己是支持update的,即可以实现按照字节流来更新MD5值的。
即如果你是一个一个字节的进来数据,通过update,可以一个字节一个字节的算MD5
值,最后你的值就是整个数据流的MD5.

> -----Original Message-----
> From: dev4s...@googlegroups.com [mailto:dev4s...@googlegroups.com]
> On Behalf Of est
> Sent: Tuesday, September 30, 2008 2:24 PM
> To: 高性能网络编程邮件列表
> Subject: Re: 有没有一边上传一边算md5的Web服务器模块?
>

est

unread,
Oct 2, 2008, 2:19:49 PM10/2/08
to 高性能网络编程邮件列表
猛机啊。。。我md5一个700MB的都要21秒

MD5难道还有硬件实现?????囧。。。
> > 2.用boost crc32 ,boost python 自己封装一个- Hide quoted text -

张沈鹏

unread,
Oct 2, 2008, 2:28:26 PM10/2/08
to dev4s...@googlegroups.com
http://www.cryptopp.com/benchmarks-amd64.html
CRC-32 415 5.5
Adler-32 948 2.4
MD5 376 6.1

http://www.cryptopp.com/benchmarks-p4.html
benchmarks that ran on an AMD Opteron 2.4 GHz processor under Linux
2.6.18. Those were compiled with GCC 4.1.1 using -O2
CRC-32 324 6.3
Adler-32 1210 1.7
MD5 219 9.3

http://www.cryptopp.com/benchmarks.html

compiled with Microsoft Visual C++ 2005 SP1 (whole program
optimization, optimize for speed), and ran on an Intel Core 2 1.83 GHz
processor under Windows XP SP 2 in 32-bit mode.

CRC-32 256 6.8
Adler-32 936 1.9
MD5 258 6.8

eSX

unread,
Oct 2, 2008, 2:44:52 PM10/2/08
to dev4s...@googlegroups.com
现在有一些新片内嵌了对诸如MD5 RSA等的硬件支持。
MD5的速度确实和使用方法,优化方式有关。和CPU位数也有关。

> -----Original Message-----
> From: dev4s...@googlegroups.com [mailto:dev4s...@googlegroups.com]
> On Behalf Of est
> Sent: Friday, October 03, 2008 2:20 AM
> To: 高性能网络编程邮件列表
> Subject: Re: 有没有一边上传一边算md5的Web服务器模块?
>

eSX

unread,
Oct 2, 2008, 2:46:27 PM10/2/08
to dev4s...@googlegroups.com
嗯。。。所以如果图快的话。。。可以考虑用Adler-32。。。不过Adler-32貌似没有雪崩效应。

> -----Original Message-----
> From: dev4s...@googlegroups.com [mailto:dev4s...@googlegroups.com]
> On Behalf Of 张沈鹏
> Sent: Friday, October 03, 2008 2:28 AM
> To: dev4s...@googlegroups.com
> Subject: Re: 有没有一边上传一边算md5的Web服务器模块?
>
>
Reply all
Reply to author
Forward
0 new messages