方法HashAlgorithm.TransformBlock
采用参数outputBuffer
和outputOffset
。
我想不出这种方法的原因。将散列数据复制到某个地方是否如此常见,以致副本成为此方法不可或缺的一部分?
我很想看到一个涉及这些输出参数的好用例。
答案 0 :(得分:7)
这显然是一种疏忽。我找不到支持这个的来源,但是我们可以想象(我无法想象任何实际用例)任何用例最多可以保存开发人员最多一行代码。更糟糕的是,任何开发人员(无论出于什么原因)确实想要自己创建缓冲区的副本,可能会发现TransformBlock
不太可能为她做这件事,以至于她自己也可能自己编写这行代码! / p>
其他outputBuffer
以合理的方式使用
ICryptoTransforms
(例如作为输出缓冲区),因此它确实应该包含 - 当不为空且不覆盖输入时缓冲区 - 中间摘要,特别是因为它不能从类中获得。 (只要算法的输入出现在多个上下文中,就可以使中间摘要可用。)
我的猜测是: