gpt4 book ai didi

c# - 保存文件时计算哈希?

转载 作者:太空狗 更新时间:2023-10-29 19:39:38 24 4
gpt4 key购买 nike

我有一个inputStream,我想用它来计算散列并将文件保存到磁盘。我想知道如何有效地做到这一点。我是否应该同时使用某些任务来执行此操作,是否应该将流传递复制到两个流,一个用于 saveFile 方法,一个用于 computeHash 方法,或者我应该做点别的?

最佳答案

使用在 block 级别上运行的哈希算法怎么样?您可以将 block 添加到哈希(使用 TransformBlock),然后将 block 写入流中每个 block 的文件。

未经测试的粗略镜头:

using System.IO;
using System.Security.Cryptography;

...

public byte[] HashedFileWrite(string filename, Stream input)
{
var hash_algorithm = MD5.Create();

using(var file = File.OpenWrite(filename))
{
byte[] buffer = new byte[4096];
int read = 0;

while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
hash_algorithm.TransformBlock(buffer, 0, read, null, 0);
file.Write(buffer, 0, read);
}

hash_algorithm.TransformFinalBlock(buffer, 0, read);
}

return hash_algorithm.Hash;
}

关于c# - 保存文件时计算哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11125135/

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