Alguem sabe como pode ser o algoritmo de um encurtador de URL

Estou com um desafio de montar um encurtador de url só para diversão, já pesquisei no google sobre o assunto mas nada encontrei, eu gostaria de ter uma ideia de como seria o algoritmo deles q consegue encurtar uma url enorme em apenas tres caracteres, como vcs acham que dever ser este algoritmo?

Agradeço qualquer dica q vier?

aqui tem um exemplo

outro link da pagina

http://code.google.com/p/loolu/source/browse/trunk/common/lib/url/hash.py

[quote=André Fonseca]aqui tem um exemplo

outro link da pagina

http://code.google.com/p/loolu/source/browse/trunk/common/lib/url/hash.py[/quote]

Obrigado andré, Só falta eu conseguir fazer esta formula em Java.
Vc tem idéia de como faz?

Abraço!