在PHP中创建短哈希

Pee*_*Haa 5 php hash

这已经在SO上被多次询问了.但我还没有找到解决问题的方法.

我想为邀请系统创建一个简短的哈希(假设最多8个字符).我无法使用,base[X] encoding因为这太容易猜到了.我不能只修剪例如MD5哈希的额外字符,因为我认为碰撞问题会在某个时候出现.

这有解决方案吗?

小智 2

如果您想确保永远不会发生冲突,最好的选择是维护有效哈希值的数据库,并在生成新哈希值时与该数据库进行比较。

如果您认为您的数据量很大,您可能需要预先生成哈希值,以便您有一个可供使用的“大海捞针”。有些人用随机数来做到这一点,因为硬件随机数生成器只能以一定的速率产生数字。