【发布时间】:2016-08-06 12:38:28
【问题描述】:
我已经对连接到字符串的文件名列表进行了排序,并希望通过唯一的校验和来识别每个这样的字符串。
这些字符串的大小最小为 100 字节,最大为 4000 字节,平均为 1000 字节。字符串的总数可以是任何东西,但更有可能在 ca 的范围内。 10000。
CRC-32 是否适合此目的?
例如我需要以下每个字符串具有不同的固定长度(最好是短)校验和:
"/some/path/to/something/some/other/path"
"/some/path/to/something/another/path"
"/some/path"
...
# these strings can get __very__ long (very long strings are the norm)
CRC-32 哈希的唯一性是否随着输入长度的增加而增加?
是否有更好的校验和可供选择?
【问题讨论】:
-
如果您已经有一个唯一的校验和,那么问题是什么?
-
最小 100 字节,最大 4000 字节,平均 1000 字节。问题是缩短这些字符串,重新计算它们,重新计算校验和,然后查看之前是否计算过校验和。我想确保 crc-32 适合这个,因为我不太了解哈希函数并尽量减少冲突概率。
-
您预计总共有多少个条目?猜测? 1000、10000 (1e5)、一百万 (1e6) 还是更多?
-
您介意将 cmets 中的值添加到您的问题中吗? imo,它将帮助其他人回答您的问题,因为他们知道“问题的大小”。感谢您提供的信息 - 它对我们有帮助。
-
imo,我会为您的应用程序查看“md5”哈希。快速且不太可能发生碰撞。它不能用于与安全有关的任何事情,imo,它将是文件名的快速查找。
标签: hash crc32 hash-code-uniqueness