【问题标题】:PHP hashing files, CRC32b or MD5 is better?PHP 散列文件,CRC32b 还是 MD5 更好?
【发布时间】:2013-07-05 06:51:05
【问题描述】:

我想对用户上传的文件进行哈希处理

然后将哈希保存到数据库

这有助于我防止重复上传文件

我想知道我应该使用哪种哈希算法

google 有人说 crc32b 比 md5 更好更快

不会出现动态错误?

如果不使用hash_file('crc32b'),或者md5_file vs sha1_file

【问题讨论】:

  • 抱歉,不确定这个问题的目的,您已经通过自己的搜索得到了答案,所以现在您只是在这里问同样的问题?
  • 我不知道crc32b和md5哪个更能防止重复文件,答案是crc32b吗?
  • 那么你为什么怀疑你已经找到了什么?
  • 你如何定义更好?是在速度方面还是在碰撞概率方面?由于 MD5 提供 128 位散列,而 crc32b 提供 32 位散列,因此使用 MD5 获得误报的风险要小得多。但是,使用 crc32b 更快。

标签: php algorithm hash md5 crc


【解决方案1】:

CRC-32 的速度要快得多,并且在大多数情况下可用于排除匹配项。如果您遇到 CRC,那么您可以应用更大的签名来检查它是否真的匹配。根据您的流量大小,您很可能会仅使用 CRC 得到误报匹配。使用 SHA-256 来检查它是否真的匹配,并且仅以此为基础拒绝。

仍然有极小概率您会得到 SHA-256 的误报。但是,对于您的应用程序,您最好接受在这种极少数情况下阻止用户上传真正的新文件。

【讨论】:

    猜你喜欢
    • 2014-11-18
    • 2013-08-29
    • 2015-05-03
    • 2014-09-09
    • 2015-03-13
    • 2021-12-11
    • 2012-06-17
    • 2015-08-05
    • 2011-10-09
    相关资源
    最近更新 更多