2012-08-16 129 views

回答

5

当然,生成哈希的实际时间将取决于您的硬件,因此无法提供特定的时间。

也就是说,可以指示SHA1哈希算法相对于其他哈希算法的性能。

以下链接提供了许多不同的流行的哈希算法的性能比较:

Crypto++ 5.6.0 Benchmarks

MD5 vs. SHA-1, Performance & Pedigree

Performance Comparison: Security Design Choices
(检查大约一半时,在标题 “ComputeHash” 下)

从最后一个链接:

ComputeHash

该方法计算存储在文件中的数据的散列。我们对数据大小为4 KB,135 KB和1 MB的测试执行了 ,以了解数据大小如何影响性能。

enter image description here

图4.哈希算法(4 KB):RPS和响应时间

注:

.NET框架支持各种哈希算法,包括MD5,SHA1, SHA256,SHA384,和SHA512。各种不同的SHA实现之间的唯一区别是它们产生的散列大小。我们选择 在我们的测试中只包括SHA1和SHA512。我们使用了 System.Security.Cryptography,它提供了 SHA1和MD5的各种实现。在 System.Security.Cryptography:MD5CryptoServiceProvider只包含CAPI的MD5的一个实现。 SHA256,SHA384和SHA512当前不可用于 CryptoAPI。这些算法直接在托管代码中实现。 这些算法已被添加,只是为了支持AES的新密钥 世代要求,而不是提供比SHA1更强的算法 。目前的看法是SHA1对于散列数据来说已经足够了。对于SHA1和SHA512,我们分别使用管理实现, SHA1Managed和SHA512Managed,分别在 System.Security.Cryptography中可用。如图4所示,所有算法 在性能上与SHA512略有差异。 MD5 产生大小为128位的散列。 SHA中的计算过程是在MD5之后非常模仿的 。它产生一个160位的散列。