URL缩短器如何计算URL密钥?他们是如何工作的?

时间:2010-08-15 21:36:20

标签: algorithm url

URL shortener's bit.ly如何计算每个链接的随机密钥?我需要知道什么算法才能创建自己的算法?

4 个答案:

答案 0 :(得分:2)

我认为他们不要随机使用新密钥并检查数据库中是否存在,因为它比使用顺序编号慢并且应用一些 criptography 算法来将sequencecial id转换为UNIQUE字符串。

例如:

idUrl = 1003;
urlCode = doSomething(idUrl); // 161Llz

要使用的网址: http://bit.ly/161Llz

Tks:mykhal和nick johnson

答案 1 :(得分:2)

到目前为止,我找到了来自http://briancray.com/2009/08/26/free-php-url-shortener-script/

的代码
function getShortenedURLFromID ($integer, $base = ALLOWED_CHARS)
{
    $length = strlen($base);
    while($integer > $length - 1)
    {
        $out = $base[fmod($integer, $length)] . $out;
        $integer = floor( $integer / $length );
    }
    return $base[$integer] . $out;
}

以及上面提到的Marcel J.更复杂的答案。

答案 2 :(得分:1)

也许他们将它存储在数据库中,只是给你一个链接ID。查询此密钥时,他们会查看其数据库并转发到存储的真实链接。要对id进行编码,可能会使用类似base64(或类似)的内容。

答案 3 :(得分:0)

他们很可能将其存储在数据库中,只是随机生成密钥。我假设这是因为你可以制作自己的密钥,如果他们只是解码了你就不能自己选择它。

至于如何做,你可以在mySQL中创建一个数据库,让它拥有密钥和完整的站点。只需搜索密钥,然后将用户重定向到完整网站即可。