gpt4 book ai didi

c# - MD5 computeHash(Stream) 和 computeHash(byte[]) 有什么区别

转载 作者:太空宇宙 更新时间:2023-11-03 18:08:00 26 4
gpt4 key购买 nike

<分区>

这对我见过的一些人来说是一个问题,但大多数人都是关于文本编码问题的。这是一个纯粹的二进制问题。这是一些示例代码。

MD5 md5Bytes  = MD5.Create() ;
MD5 md5Stream = MD5.Create() ;
var random = new Random();

var bytes = new byte[ 4096*2 ] ;
random.NextBytes(bytes);
var stream = new MemoryStream(bytes) ;

stream.Position = 0 ;

var bytesHash = md5Bytes.ComputeHash(bytes);
var streamHash = md5Stream.ComputeHash(stream);

for (int i = 0; i < bytesHash.Length; ++i)
if ( bytes[i] != streamHash[i] )
{
Console.WriteLine("Different content " + i);
break;
}

当我运行它时,令我惊讶的是我得到了不同的结果。有人可以解释这里发生了什么,字节数组的 MD5 不应该给出与相同内容流相同的结果吗?

26 4 0