使用CryptoStream进行哈希输出

3

我正在使用:

cryptoStream.Write(buffer, 0, bytesRead);

我想获取它的哈希值。如果我使用:

hash.TransformBlock(buffer, 0, bytesRead, null, 0);

我猜测它会对输入进行哈希计算,而不是加密缓冲区。

那么我该如何对输出缓冲区进行哈希处理呢?


这个问题与我链接的那个几乎相同,但由于您没有明确要求流,所以我想那应该没问题。 - Maarten Bodewes
1个回答

0

哈希函数具有内部状态。您不需要同时访问输入缓冲区来创建数据的哈希;您可以使用流。

此答案解释了如何使用流计算哈希(请注意问题的相似之处)。还要注意,该问题可能包含最完整的答案。


谢谢你指出那个问题。我确实看到了,但是一直在看答案,这并没有帮助我。现在我看到问题本身提到了“链接”流并将一个写入流的输出馈送到另一个流中。我得去检查一下。看起来不错... - ispiro
另一方面,我仍然有一个问题,因为那里的OP只写一次,而我写多次 - 哈希将是整个流还是仅最后一个缓冲区写入的哈希? - ispiro
如果流只适用于一次写入,那么它将没有太多用处...为什么不尝试将流写入文件(就像在示例中一样),然后您可以始终使用命令行实用程序或简单的GUI应用程序/资源管理器扩展来创建二进制文件的哈希值进行比较。 - Maarten Bodewes
你遇到了其他问题吗,ispiro?还是有什么地方出了问题? - Maarten Bodewes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接