0

我正在尝试为客户制作网址缩短器。我现在有一个不错的算法,唯一的问题是,如果客户要为不同的促销缩短相同的 URL,它会创建相同的代码。

我能做些什么来防止这种情况发生?

$hash = sha1($this->data[$this->alias]['us_url']);
$this->data[$this->alias]['shortid'] = base_convert(hexdec($hash), 10, 32);

我希望能够为同一个 url 创建多个短代码以不同地跟踪它。

4

2 回答 2

2

与创建密码哈希时的过程相同:使用一些盐。

$hash = sha1($randomly_generated_salt . $my_url);

因此,相同的输入字符串将创建不同的哈希。盐应该有合适的长度以提供足够的熵。

(尽管您不会使用 sha1 来散列密码!)

于 2012-08-21T18:11:46.643 回答
0

添加提供自定义网址的可能性。在伪代码中:

if(isset($customUrl) && isUniqueLabel($customUrl)) {
    createCustomUrl()
} else {
   createUsualUrl()
}

给定自定义 URL,客户端可以手动定义 url(就像 is.gd 和许多其他服务所做的那样),这将增加自定义的可能性。

于 2012-08-21T18:15:23.193 回答