URL shortener's bit.ly如何计算每个链接的随机密钥?我需要知道什么算法才能创建自己的算法?
答案 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中创建一个数据库,让它拥有密钥和完整的站点。只需搜索密钥,然后将用户重定向到完整网站即可。