【发布时间】:2013-01-21 12:24:33
【问题描述】:
我想为给定的字符串创建一个唯一的散列,我想知道 md5 和 sha1 的重复散列是否存在差异。
为了论证,假设以下代码:
foo = "gdfgkldng"
bar = "fdsfdsf"
md5(foo)
>>>> "25f709d867523ff6958784d399f138d9"
md5(bar)
>>>> "25f709d867523ff6958784d399f138d9"
sha1 和 md5 发生这种情况的概率是否存在差异?另外:如果我使用重叠很大的字符串(“blabla1”、“blabla2”),有区别吗?
顺便说一句。我对算法的安全性不感兴趣,我只想创建一个尽可能唯一的哈希。
【问题讨论】:
-
如果这与安全无关,您可以考虑使用原始字符串。如果字符串比它的哈希值短,那么计算哈希就没有优势,字符串在每种情况下都会更加唯一。
-
是的,但字符串并不短,我在获取请求中传递它,所以我不希望它“可读”。这也有很好的副作用,哈希已经被 url 转义了..
标签: hash md5 sha1 hash-collision