由于哈希长度或算法,SHA1冲突是否可行?

问题描述

SHA1 creates a 20-byte hash
SHA256 creates a 32-byte hash

如果仅使用SHA256的前20个字节,它将具有与SHA1相同的抗碰撞性,还是SHA1的弱点仅在于哈希长度而不是算法?

解决方法

SHA-1和SHA-256是两种不同的算法。

如果仅将它们用于散列,则SHA-256和SHA-1的前20个字节之间没有实际区别,当然SHA-256较慢。

但是,如果您关心的是对碰撞攻击的抵抗力,那么SHA-1具有几个已知的漏洞,这些漏洞将攻击的复杂性降低到可以认为可行的程度。另一方面,SHA-256目前没有已知的实际攻击。因此,至少从理论上讲,SHA-256中的20个字节比SHA-1具有更好的抵抗攻击的能力。