【发布时间】:2013-02-07 02:10:15
【问题描述】:
我需要一个能产生至少 16 字节输出的非加密安全哈希函数。
我目前正在使用 MD5,但它太慢了,大约是 5 倍。
Adler32、CRC32 等不产生所需的输出量。
有没有办法将校验和转换为哈希函数,产生所需的 16 字节以上的输出?
【问题讨论】:
-
更多字节的输出并不意味着冲突的可能性较小,哈希函数的质量至少同样重要。为什么要 16 字节输出?只填充较短的输出(例如用零)就足够了吗?
-
我可以用 一些 零填充,但是 32 位(最好的情况 - 四十亿分之一)的碰撞机会太接近了,无法舒适。 CRC-64 可能是一个解决方案,如果它确实具有其输出尺寸图所暗示的抗碰撞性。
-
正如我之前所说,抗碰撞性充其量仅与输出大小部分相关,因此不要过多解读它。你还需要这些做什么?
-
@delnan 散列稀疏 TB 文件 - 对相关问题的评论产生了一个很好的解决方案:stackoverflow.com/questions/15007629/…