如何创建唯一的 ID,例如 YouTube?

2022-08-30 17:26:43

我一直想知道他们如何以及为什么这样做...例如:http://youtube.com/watch?v=DnAMjq0haic

如何生成这些 ID 以使其没有重复项,与具有简单的自动递增数字 ID 相比,这有什么优势?

如何保持简短,但仍然保持其独特性?uniqid 创建的字符串很长。


答案 1

Kevin van Zonneveld写了一篇很棒的文章,其中包括一个PHP函数来做到这一点。他的方法就是我在研究这个话题时发现的最好的方法。

他的功能非常聪明。它使用固定$index变量,因此可以删除有问题的字符(例如元音,或避免O和0混淆)。它还具有混淆ID的选项,以便它们不容易被猜到。


答案 2

试试这个:http://php.net/manual/en/function.uniqid.php

uniqid — 生成一个唯一的 ID...

获取基于当前时间(以微秒为单位)的带前缀的唯一标识符。

谨慎此函数不生成加密安全值,并且不应用于加密目的。如果需要加密安全的值,请考虑改用 random_int())、random_bytes()openssl_random_pseudo_bytes()。

警告此函数不保证返回值的唯一性。由于大多数系统通过NTP或类似方式调整系统时钟,因此系统时间不断变化。因此,此函数可能不会返回进程/线程的唯一 ID。用于增加唯一性的可能性...more_entropy


推荐