Hash 对于非唯一str:md5或sha1,什么冲突最少

Hash 对于非唯一str:md5或sha1,什么冲突最少,hash,md5,sha1,hash-collision,Hash,Md5,Sha1,Hash Collision,我想为给定的字符串创建一个唯一的散列,我想知道md5和sha1的重复散列是否有区别 为了参数起见,让我们假设以下代码: foo = "gdfgkldng" bar = "fdsfdsf" md5(foo) >>>> "25f709d867523ff6958784d399f138d9" md5(bar) >>>> "25f709d867523ff6958784d399f138d9" sha1和md5之间发生这种情况的概率有差异吗?另外:如果我使用的

我想为给定的字符串创建一个唯一的散列,我想知道md5和sha1的重复散列是否有区别

为了参数起见,让我们假设以下代码:

foo = "gdfgkldng"
bar = "fdsfdsf"
md5(foo)
>>>> "25f709d867523ff6958784d399f138d9"
md5(bar)
>>>> "25f709d867523ff6958784d399f138d9"
sha1和md5之间发生这种情况的概率有差异吗?另外:如果我使用的字符串有很大的重叠(“blabla1”,“blabla2”)有区别吗


顺便说一句,我对算法的安全性不感兴趣,我只是想创建一个尽可能唯一的散列

MD5的摘要大小为128位。SHA-1的摘要大小为160位。即使忽略已发现的弱点,MD5也会产生更多的冲突,因为它的输出空间更小


考虑改用SHA-256;它具有256位的摘要大小(显然),而且还没有以有意义的方式被破坏。

如果这不是安全相关的,则可以考虑使用原始字符串。如果字符串比它的哈希值短,那么计算哈希值没有什么好处,字符串在任何情况下都会更唯一。这是真的,但字符串并不短,我在get请求中传递它,所以我不希望它“可读”。这也有很好的副作用,散列已经被url转义了。。