相比MD5,SHA-1被认为更安全,原因至少有两点:哈希值更大(160位 vs 128位)和更好的哈希函数。
我需要在数百万个字符串上生成哈希值。通常情况下,即使对于MD5,发生碰撞的概率也应该非常低。我知道MD5很古老,在一般情况下不被认为是安全的,但在我的情况下,故意攻击并不是一个问题(没有外部访问、没有激励等)。我只需要一个合理安全的哈希函数,而不浪费太多位,128位应该足够了。所以我想知道 - 如果我只得到SHA-1哈希的前128位,是否比MD5的128位更好? "更好"的意思是“发生碰撞的可能性更小”。