Tinyurl 中url的生成策略

tinyurl可以将一长串的url转换为相当短的url,比如 http://preview.tinyurl.com/2wqbcs。

我对 2wqbcs 这种形式的串比较感兴趣,感觉类似UUID或MD5这样的哈希算法所产生的,youtube的视频网址也有类似这样的串 http://www.youtube.com/watch?v=9SBB14vu8jM

个人猜测是这几种可能之一:
1.产生一个大的随机数,将这个数字转换为以数字和字母所表示的字符串。感觉这个可能性比较大,类似UUID这样,只要整数值足够大,重复几率很小。
2.一种哈希函数,输入产生特定输出。对于tinyurl,它的长度和源url长度没有关联,感觉不像。
3.一种加密算法,数据是可逆的。

有对这个了解的朋友,能介绍一下么?

看你的用途啦。说实在的,可以是数字累加型,也可以是定义位数,然后每个位26个字母和10个数字轮流转。
如果是为了转成静态页面链接的,长点更好,不容易重复。
如果有路由功能(比如说群集的负载均衡),则分段,前几个字母表示哪个具体的服务器的key。
如果是为了作为临时页面的(比如说向导型的页面流,第一页,第二页,。。。最后一页,下次用户在过期失效之前,再进入的时候,直接就到处理的第N页)还是有点规律的比较好,便于下次再接着处理.