计算哈希,而不是立即在内存中使用整个缓冲区

时间:2009-08-26 09:52:40

标签: c# .net hash md5

我正在进行一项操作,我从组件接收一些字节,进行一些处理,然后将其发送到下一个组件。我需要能够计算我在任何给定时间看到的所有数据的哈希值 - 并且因为数据大小;我无法将其全部保存在本地缓冲区中。

在这些情况下,您如何计算(MD5)哈希值?

我在想我应该能够保持哈希的中间结果,并在我去的时候添加更多数据。但是,任何内置框架类都支持这个吗?

2 个答案:

答案 0 :(得分:7)

您只想使用该类的TransformBlockTransformFinalBlock成员,这些成员允许您以块的形式计算哈希值。

MSDN有一个如何做到这一点的好例子。

答案 1 :(得分:0)

它有点令人惊讶,它不会出现在盒子里。

如果在成员变量中创建MD5CryptoServiceProvider,并重复调用ComputeHash(),它是否不能作为追加工作?