2010-11-19 17 views
0

Je me demandais quel est le meilleur algorithme pour le raccourcissement d'URL. J'ai remarqué que la plupart des gens font ce qui suit:Best URL Shortening Algorithm

1) Obtenir l'ID généré automatiquement par la base de données. 2) Coder l'identifiant généré automatiquement unique à la valeur Base 64.

Ce genre de évident pour un utilisateur ce que l'URL précédente pourrait être. Que puis-je faire pour que l'utilisateur ait plus de difficulté à comprendre quel algorithme j'utilise?

Merci, Tesh

+0

Comment pensez-vous qu'il sera évident pour l'utilisateur ce que l'URI précédente pourrait être? Et tous les URI vont en fait ouvrir l'adresse web à laquelle ils appartiennent. Donc, je ne suis pas en mesure d'obtenir le cas d'utilisation ou la raison pour laquelle vous essayez de cacher l'algorithme. Même si l'utilisateur l'a prédit, alors quoi? OU est-ce juste un exercice de programmation où vous voulez générer une courte chaîne unique et l'associer à un URI? –

Répondre

1

Peut-être vous pouvez utiliser un SHA pour hachage il

EDIT: Mieux générer un nombre aléatoire et hachage comme Jon a souligné

1

Générer un identifiant au hasard et vérifier pour voir si elle a déjà été utilisée?

+0

Et si deux personnes obtenaient le même nombre aléatoire en même temps? Comment puis-je rendre compte de cela? C'est pourquoi j'utilisais l'ID généré automatiquement après avoir inséré une valeur dans une table. J'utilise mysql. Dois-je faire un certain type de verrouillage de la table et voir si elle existe. Si cela existe, essayez un autre nombre aléatoire? – MindGame

+0

Après la génération, vérifiez si le numéro existe déjà. Si pas régénérer. S'il y a trop de régénération. U besoin d'augmenter la taille du seau – vinothkr

1

Tout d'abord, ce n'est pas une bonne idée de mettre des informations d'authentification (par exemple les noms d'utilisateur et mots de passe) dans les URL (utilisateurs révéleront leurs mots de passe simplement par des liens de copier/coller, etc. ).

Cela dit, si vous voulez masquer l'ordre que les URL ont été ajoutées au service de raccourcissement, vous pouvez utiliser la sortie d'une fonction de hachage cryptographique telle que MD5 ou SHA1 (qui est considéré comme « irréversible », -à-dire infaisable pour dériver l'entrée de la sortie), base-64 encoder cela, et prendre huit caractères, par exemple. L'entrée de la fonction de hachage pourrait être l'URL (éventuellement l'heure actuelle).

+0

J'ai essayé votre idée où je md5 mon ID entier généré automatiquement. Ensuite, j'ai codé 64. Je reçois une longue chaîne YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OW. Voulez-vous dire que je prends les 8 premiers caractères de cela? Si je fais alors je devrais m'assurer que les 8 premières n'existent pas déjà pour les urls précédentes? – MindGame