生成一个 SHA1 哈希需要多长时间(大约 60 个字节?)
并与其他哈希相比?
提前致谢。
当然,生成哈希的实际时间很大程度上取决于您的硬件,因此无法提供具体的时间。
也就是说,可以表明 SHA1 哈希算法相对于其他哈希算法的性能。
以下链接提供了许多不同流行哈希算法的性能比较:
性能比较:安全设计选择
(检查大约一半,在标题“ComputeHash”下)
从最后一个链接:
计算哈希
该方法计算存储在文件中的数据的哈希值。我们使用 4 KB、135 KB 和 1 MB 的数据大小进行了测试,以了解数据大小如何影响性能。
图 4. 哈希算法 (4 KB):RPS 和响应时间
笔记:
.NET Framework 支持多种哈希算法,包括 MD5、SHA1、SHA256、SHA384 和 SHA512。各种 SHA 实现之间的唯一区别是它们产生的散列大小。我们选择在我们的测试中仅包含 SHA1 和 SHA512。我们使用了 System.Security.Cryptography,它提供了 SHA1 和 MD5 的各种实现。System.Security.Cryptography 中只有一种 MD5 实现:封装 CAPI 的 MD5CryptoServiceProvider。SHA256、SHA384 和 SHA512 目前在 CryptoAPI 中不可用。这些算法直接在托管代码中实现。添加这些算法只是为了支持 AES 的新密钥生成要求,而不是提供比 SHA1 更强大的算法。当前的信念是 SHA1 足以用于散列数据。对于 SHA1 和 SHA512,我们分别使用 System.Security.Cryptography 中提供的托管实现,SHA1Managed 和 SHA512Managed。如图 4 所示,所有算法在性能上都非常相似,但 SHA512 略落后。MD5 生成大小为 128 位的散列。SHA 中的计算过程非常模仿 MD5。它产生一个 160 位的散列。