2009-03-31 5 views
4

personne ne sait d'un algorithme qui génère des hashs qui ressemblent à hash TinyURL d'une chaîne (url)Créer Tinyurl style de hachage

Je pense que les exigences seraient

cas sensibles numéros courts et alphabets seulement autre chose?

+0

Juste pour avoir la bonne terminologie: je ne dirais pas que TinyURL.com utilise "[hashes] (http://en.wikipedia.org/wiki/Hash_function)". – Arjan

Répondre

14

Je ne pense pas que tinyurl hache les chaînes; ils ont un ID de base de données (1, 2, 3) qui est converti en base 36 (0-9A-Z): http://en.wikipedia.org/wiki/Base_36

+0

Pourriez-vous s'il vous plaît expliquer un peu plus – Sachin

1

Les hachages ne garantissent pas que des collisions ne se produiront pas (en supposant que vous ayez plus d'éléments à hachage qu'il n'y a de valeurs possibles du hachage), plutôt, un bon algorithme de hachage fera en sorte que les collisions ne se produisent pas souvent.

Ceci est important pour la génération d'URL car le nombre total d'URL existantes est supérieur aux valeurs pouvant être stockées dans un hachage de chaîne fixe. Plutôt, je crois que vous voyez un compteur qui est incrémenté et utilise un système de nombres avec une grande base (comme 62 par exemple, pour les chiffres 0-9, les caractères az et AZ) pour représenter la valeur du compteur qui est unique.

Questions connexes