【问题标题】:Quicker, non-secure, replacement needed for MD5/SHA1 hash functionsMD5/SHA1 哈希函数需要更快、不安全的替换
【发布时间】:2013-02-07 02:10:15
【问题描述】:

我需要一个能产生至少 16 字节输出的非加密安全哈希函数。

我目前正在使用 MD5,但它太慢了,大约是 5 倍。

Adler32、CRC32 等不产生所需的输出量。

有没有办法将校验和转换为哈希函数,产生所需的 16 字节以上的输出?

【问题讨论】:

  • 更多字节的输出并不意味着冲突的可能性较小,哈希函数的质量至少同样重要。为什么要 16 字节输出?只填充较短的输出(例如用零)就足够了吗?
  • 我可以用 一些 零填充,但是 32 位(最好的情况 - 四十亿分之一)的碰撞机会太接近了,无法舒适。 CRC-64 可能是一个解决方案,如果它确实具有其输出尺寸图所暗示的抗碰撞性。
  • 正如我之前所说,抗碰撞性充其量仅与输出大小部分相关,因此不要过多解读它。你还需要这些做什么?
  • @delnan 散列稀疏 TB 文件 - 对相关问题的评论产生了一个很好的解决方案:stackoverflow.com/questions/15007629/…

标签: hash md5 sha1 checksum


【解决方案1】:

我最初使用了 4 个不同的 32 位校验和,并将它们的输出连接成 16 个字节。

然后我正确地解决了这个问题:Optimise updating MD5/SHA1 with streams of zeros

【讨论】:

    猜你喜欢
    • 2016-01-03
    • 2011-08-16
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    相关资源
    最近更新 更多