SHA256可以多线程以提高速度吗?

时间:2016-04-16 14:11:39

标签: c# multithreading encryption hash

using (FileStream stream = File.OpenRead(path))
{
    SHA256Managed sha = new SHA256Managed();
    byte[] hash = sha.ComputeHash(stream);
    return RSAEncrypt.GenerateDigitalSignature(hash,privateKey);
}

我创建哈希的哈希方法是否可以将文件拆分成较小的部分使用缓冲区并将结果粘合回一个哈希?我问这个是因为散列大文件(+ -1gb)可能需要20秒才能完成在单独的线程上运行。是否有可能以我描述的方式多线程?

1 个答案:

答案 0 :(得分:1)

如果这需要SHA256而不是其他任何东西,那么你无能为力。

如果你可以决定哈希,你可以使用Merkle Tree构造。两个Merkle级别足以最大化您的CPU。它很容易实现。

基于SHA256的Merke哈希会导致SHA256输出。