最近在研究MD5的时候,在网上也找了许多用C#描述的代码。发现所有的代码都是一样的。也查不出是出自哪里。
但是我通过大量数据的检测,发现在数据量为:64*n-8 n=1,2,3....时,得到的md5值都是错误的。出错的原因是补位的时候多补了一位,所以导致多计算了一组。
出错代码的地址有下:
http://www.md5sha1.com/md5cs.htm
http://tech.163.com/06/0106/22/26QKQN5F0009159F.html
http://blog.csdn.net/sxf_zero/archive/2007/02/18/1511683.aspx
http://www.taiwanren.com/blog/article.asp?id=78
下面是我自己写的一个可以计算一个stream里面任意部分数据MD5值的类,通过大量数据检测,没有发现错误。
我的这个类,跟System.Security.Cryptography.MD5相比,计算的可扩展性更强
……………………
文章请看:
http://blog.csdn.net/aimeast/archive/2008/11/19/3337153.aspx