【发布时间】:2014-03-19 12:18:33
【问题描述】:
我需要哈希函数。用户会将这些哈希写入计算机,因此哈希应该很短。 我将在数据库中有大约 50 000 000 条记录。每个都必须有自己的哈希。我想拥有唯一的哈希值。但是,如果一些记录具有相同的哈希值,我可以接受。独特的更好。
MD2 对我来说很安全,但哈希很长:“8350e5a3e24c153df2275c9f80692773” - 32 个字符。如果你必须在键盘上写 10 个 MD2 哈希,你会不高兴...
Git 对每个提交使用 SHA1(40 个字符)。但在输出中只显示前 7 个字符:
$ git log
commit e2cfc89fae5b43594b2c649fd4c05bcc6d2d12ac
...
commit 56a8b4c50d4269dc3f88727472933fd81231f63b
...
commit ce2e9ddbe896b9592abbd5fcb6604b181809d523
...
commit 498c49833516ea33b6a40697634ea6e3cfd62328
...
commit b7d78aea415e64d8d441f9747fe6d5d48fe54ee5
$ git log --oneline | head -n 5
e2cfc89 commnit message...
56a8b4c commnit message...
ce2e9dd commnit message...
498c498 commnit message...
b7d78ae commnit message...
它如何安全/独特?例如,如果我将使用 MD5/SHA-1/SHA-256 中的前 5 或 10 个字符,是否足够安全?
谢谢。
【问题讨论】: