CRC32为网站制作简短的网址

4 c# python url crc32 short-url

我试图了解crc32为网页生成唯一的URL.

如果我们使用crc32,可以使用的最大网址数是多少,这样我们就可以避免重复了?

将校验和保持为2 ^ 32的近似字符串长度是多少?

当我为一个url尝试UUID并将uuid字节转换为base 64时,我可以减少到22个字符长.我想我可以进一步减少.

大多数情况下,我想将url(最多1024个字符)转换为shorted id.

ang*_*son 6

对于CRC32,没有"可以使用的最大URL数以便我们可以避免重复"这样的数字.

问题是CRC32可以产生重复,并且它不是你抛出多少值的函数,它是这些值看起来的函数.

如果你不走运,你可能会在第二个网址上发生冲突.

您不应该将算法建立在生成唯一哈希的基础上,而是手动为每个URL生成唯一值.

  • 虽然我同意你的结论,但数量确实很重要.即使CRC32具有完美的分布,生日悖论也会在你接近2 ^ 16项时发生碰撞.查看http://en.wikipedia.org/wiki/Birthday_attack,获取方便的表格以及更多数学表格. (4认同)