gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 20:54:24 25 4
gpt4 key购买 nike

方法 HashAlgorithm.TransformBlock 接受参数 outputBufferoutputOffset .

我想不出这个方法有这些的原因。将散列数据复制到某个地方以至于该副本成为此方法的一个组成部分是否如此普遍?

我很想看到一个涉及这些输出参数的好用例。

最佳答案

这很明显是一个疏忽。我找不到支持这一点的来源,但由于它代表我们可以想象的任何用例(我无法想象任何实际用例),开发人员最多可以节省一行代码。更糟糕的是,任何(无论出于何种原因)确实想要制作自己的缓冲区副本的开发人员可能会发现TransformBlock 的可能性很小。会为她做这件事,反正她可能会自己写那行代码!
outputBuffer被其他人使用 ICryptoTransforms以合理的方式(例如,作为输出缓冲区),所以它真的应该包含 - 当不为空并且不覆盖输入缓冲区时 - 中间摘要,特别是因为它不能从类中获得。 (每当算法的输入出现在多个上下文中时,使中间摘要可用是一个好主意。)

我的猜测是:

  • 有人在 1.1 中把它倒退了关于何时应该抛出 IOException。
  • 2.0 ,有人“修复”了这个问题,但误读了规范并从 inputBuffer 复制而不是 this.HashValue .
  • 中间摘要很少使用,以前没有人提示过 4.0 .
  • 关于.net - 如何使用 `HashAlgorithm.TransformBlock` 的输出参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4832225/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com