SHA
Secure Hash Algorithm
SHA-1 家族
已不再推荐使用,因为已经找到了碰撞的方法。
Google、Microsoft 和 Mozilla 在内的各大互联网公司和浏览器制造商纷纷宣布不再信任使用 SHA-1 签名的 SSL/TLS 证书。
HashAlgorithm hash = HashAlgorithm.Create("SHA1"); // SHA1 与 SHA 等效,根据微软资料,没有 SHA-1。
注意:这个方法已经过时了,详见:HashAlgorithm.Create 方法 (System.Security.Cryptography) | Microsoft Learn。
SHA-2 家族
目前来看,还是安全的。
SHA-2 家族包括 SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224 和 SHA-512/256 六种哈希算法。其中,SHA-256 和 SHA-512 是最常用的算法。
SHA-2 性能要比 SHA-1 慢得多。
HashAlgorithm hash = HashAlgorithm.Create("SHA512"); // SHA512 与 SHA-512 等效。
SHA-3 家族
更安全。
SHA-3 性能与 SHA-2 差不了多少。
以下数据是网上整理的
算法 | char | 性能 |
---|---|---|
MD5 | 32 | 6929 |
SHA-1 | 40 | 7330 |
SHA-256 | 64 | 2886 |
SHA-384 | 96 | 2666 |
SHA-512 | 128 | 2790 |
其中:
char,是散列值的字符数,可通过这个来判断使用的哪个散列算法。
性能,是原作者在其环境中测试的——每毫秒的计算次数,值越大,说明其计算越快。