文件指纹识别和安全性



我们正在为 API 开发文件指纹。我们正在讨论如何对将发送到 API 的文件进行指纹识别。

有以下几种选择:

  • MD5 文件 - 出色的性能 - 但它已知冲突
  • SHA1 文件 - 性能更差 - 但比 MD5 更"安全"
  • 第一个 MD5 文件->下一个 SHA1 哈希 -- 最佳性能

这些文件是>800mb。

该怎么做,为什么?

对 MD5 进行 SHA-1 会给您带来与仅执行 MD5 一样多的碰撞,因为您只是在散列 MD5 指纹(2 个相同的 MD5 -> 2 个相同的 SHA1)

请记住,无论算法是什么,您总是有碰撞的机会,尽管它可能很薄,因为唯一不会对 2 个不同文件进行碰撞的哈希是文件内容本身!

如果你的重点是哈希安全性的唯一性(比如用于存储密码时),我会推荐Ian Boys(https://softwareengineering.stackexchange.com/a/145633)的这个出色的分析。

最新更新