2009-03-31 2 views
4

hat jemand einen Algorithmus kennen, die Hash-Werte erzeugt, die aus einem String wie tinyurl Hashes aussehen (url)Tinyurl Stil Hash

Ich denke, die Anforderungen würden

Groß- und Kleinschreibung kurze Zahlen und Buchstaben werden nur noch etwas?

+0

Nur um die Terminologie richtig zu machen: Ich würde nicht sagen, dass TinyURL.com "[Hashes] (http://en.wikipedia.org/wiki/Hash_function)" verwendet. – Arjan

Antwort

14

Ich glaube nicht, dass tinyurl die Strings hashed; Sie haben eine Datenbank-ID (1, 2, 3), die in Base 36 (0-9A-Z) umgewandelt wird: http://en.wikipedia.org/wiki/Base_36

+0

Könnten Sie es bitte ein bisschen mehr erklären – Sachin

1

Hashes garantiert nicht, dass Kollisionen nicht auftreten (vorausgesetzt, Sie haben mehr Elemente zu) Hash, als es mögliche Werte des Hashs gibt), sondern ein guter Hash-Algorithmus macht es so, dass Kollisionen nicht oft vorkommen.

Dies ist wichtig für die URL-Generierung, da die Gesamtzahl der vorhandenen URLs größer ist als die Werte, die in einem festen String-Hash gespeichert werden können.

Ich glaube, Sie sehen einen Zähler, der inkrementiert wird und ein Zahlensystem mit einer großen Basis (wie 62 für die Ziffern 0-9, Zeichen az und AZ) verwendet, um den Wert des Zählers darzustellen einzigartig.

Verwandte Themen