【发布时间】:2019-06-25 07:59:48
【问题描述】:
我只想知道对于一个 CRC32 哈希函数,特别是 PHP crc 函数,我是否会得到 2^32(40 亿)个不同的输入值(整数)值,保证从 1 开始按顺序递增到 40 亿?
【问题讨论】:
-
没有。 CRC32 无意特别防碰撞。但是,如果您可能的输入都是 32 位数字,为什么还要麻烦将它们散列到 32 位呢?直接使用即可。
-
这听起来像是一个 XY 问题。您要解决的真正问题是什么?
-
你为什么不写程序来做呢? 2^32(甚至 2^30)并不是一个很大的空间。一个写得很好的程序应该很快就完成了。
-
要创建 URL 缩短服务,您无需对 URL 进行哈希处理。相反,您创建一个返回下一个连续值的函数,然后对该值进行模糊处理。我的博文blog.mischel.com/2017/06/20/how-to-generate-random-looking-keys 展示了如何做到这一点。另见stackoverflow.com/a/34420445/56778
-
另请参阅 stackoverflow.com/questions/742013/… 和 stackoverflow.com/questions/742013/…,以及任何数量的其他参考资料。
标签: php hash cryptography crc32