当然,生成散列所需的实际时间在很大程度上取决于您的硬件,因此无法提供具体的时序.
也就是说,可以指出SHA1哈希算法相对于其他哈希算法的性能.
以下链接提供了许多不同流行哈希算法的性能比较:
性能比较:安全设计选择
(检查大约一半,在"ComputeHash"标题下)
从最后一个链接:
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位散列.