.net – 如何使用`HashAlgorithm.TransformBlock`的输出参数?

方法HashAlgorithm.TransformBlock获取参数outputBuffer和outputOffset.

我不能想到有这个方法的原因.复制散列数据在复制作为此方法的一个组成部分的地方是很常见的?

我很好奇地看到一个涉及这些输出参数的好用例.

这显然是一个监督.我找不到一个来源来支持这一点,但是由于我们可以想象(我无法想象任何实际的用例)可以保存开发人员最多的一行代码.更糟糕的是,任何开发人员(无论什么原因)都想要自己编写的缓冲区的副本,可能会发现TransformBlock不太可能为她做这样的事情,她可能会自己编写一行代码!

outputBuffer由其他ICryptoTransform以合理的方式(例如输出缓冲区)使用,所以它真的应该包含 – 当不为空而不覆盖输入缓冲区时 – 中间摘要,特别是因为它不能从类中获得. (当算法的输入出现在多个上下文中时,使中间摘要可用是一个不错的想法.)

我的猜测是:

>有人在1.1关于IOException应该抛出的时候向后倒.
>在2.0,有人“固定”这个问题,但误读spec并从inputBuffer复制而不是this.HashValue.
>中级消息很少被用于4.0之前没有人抱怨.

http://stackoverflow.com/questions/4832225/how-might-one-use-the-output-parameters-of-hashalgorithm-transformblock

转载注明原文:.net – 如何使用`HashAlgorithm.TransformBlock`的输出参数?