gpt4 book ai didi

php - 如何根据 id 生成不可猜测的 "tiny url"?

转载 作者:可可西里 更新时间:2023-11-01 13:05:33 26 4
gpt4 key购买 nike

我对创建像链接这样的小 url 很感兴趣。我的想法是简单地为每个发布的长 url 存储一个递增的标识符,然后将这个 id 转换为它的 base 36 变体,如 PHP 中的以下内容:

$tinyurl = base_convert($id, 10, 36)

这里的问题是结果是可以猜测的,而很难猜测下一个 url 是什么,同时仍然很短(很小)。例如。 atm 如果我的最后一个 tinyurl 是 a1,下一个将是 a2。这对我来说是一件坏事。

那么,我如何确保生成的小 url 不那么容易被猜到但仍然很短?

最佳答案

您所要求的是在减少信息(数据库中索引的 URL)和人为增加信息(在您的序列中创建漏洞)之间取得平衡。

您必须决定两者对您的重要性。另一个问题是您是否只是不希望连续的 URL 被猜测,或者让它们足够随机以使得猜测任何有效的 URL 变得困难。

基本上,您要声明 N 个有效 ID 中的 n 个。选择 N 越小,URL 越短,n 越小,生成的 URL 越难猜。使 n 和 N 变大,以便在获取较短的 URL 时生成更多的 URL。

要分配 ID,您可以采用任何类型的随机生成器或哈希函数并将其限制在目标范围 N 内。如果检测到冲突,请选择下一个随机值。如果已达到 n 个唯一 ID 的计数,则必须增加 ID 集的范围(n 和 N)。

关于php - 如何根据 id 生成不可猜测的 "tiny url"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3427973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com