密码学Hash算法有很多,比如MD5算法、SHA族类算法,MD5早已被证明是不安全的Hash算法了,目前使用最广泛的Hash算法是SHA族类算法。
1)MD5
MD5是一种比较常用的Hash算法,摘要值长度固定是128比特。
MD5算法目前被证明已经不安全了,MD5算法违反了强抗碰撞性原则,但是还没有破坏单一性原则。
理论上经过280次运算就能产生碰撞,但目前最快只要经过263次运算就能破坏强抗碰撞性。
2)SHA
SHA算法不是一个算法,而是一组算法,主要分为三类算法。
1)SHA-1
SHA-1算法类似于MD5算法,输出的长度固定是160比特。
目前SHA-1算法在严谨的加密学中已经被证明是不安全的,在实际应用过程中使用SHA-1算法并不代表就不安全。
在Git中,所有存储的文件都会通过SHA-1算法计算出一个摘要值。Git中使用SHA-1是为了保证数据的完整性而非机密性。
2)SHA-2
SHA-2算法是目前建议使用的Hash算法,截至目前是安全的,主要有四种算法,分别是SHA-256、SHA-512、SHA-224、SHA-384
3)SHA-3
是一种在设计上和SHA-2完全不同的算法,主要有四种算法,分别是SHA3-256、SHA3-512、SHA3-224、SHA3-384。