Maison  >  Article  >  développement back-end  >  Comment générer des hachages courts comme des sites Web de raccourcissement d'URL en PHP ?

Comment générer des hachages courts comme des sites Web de raccourcissement d'URL en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-19 11:54:29640parcourir

How to Generate Short Hashes Like URL-Shortening Websites in PHP?

Fonction PHP pour le hachage court : découvrir les secrets des sites Web de raccourcissement d'URL

Dans le domaine du développement Web, le raccourcissement d'URL est devenu un outil indispensable pour créer des liens concis et mémorables. Pour y parvenir, des sites Web spécialisés comme tinyurl.com utilisent un algorithme sophistiqué qui génère de courts hachages à partir de chaînes ou de fichiers d'entrée.

Notre objectif est de découvrir une fonction similaire en PHP capable d'effectuer cette tâche, en créant un hachage compact. pas plus de 8 caractères. Curieusement, la réponse ne réside pas dans les algorithmes de hachage mais plutôt dans l'utilisation ingénieuse de différentes bases numériques.

Décoder la magie TinyURL

Contrairement à la croyance populaire, TinyURL ne Je ne compte pas sur le hachage pour générer ses liens courts. Au lieu de cela, il utilise des entiers en base 36, ou même en base 62 avec des lettres minuscules et majuscules. Cela lui permet de mapper un grand nombre d'enregistrements uniques à des représentations concises.

Conversion entre la base 36 et les entiers

Pour créer un hachage court, nous pouvons tirer parti de la fonction construite de PHP -in fonctions de conversion entre la base 36 et les entiers décimaux :

Pour la base 36 en entier :

<code class="php">intval($str, 36);</code>

Pour l'entier en base 36 :

<code class="php">base_convert($val, 10, 36);</code>

Une alternative au hachage

En utilisant la Base 36 au lieu du hachage, nous obtenons plusieurs avantages. Premièrement, cela élimine le risque de collisions de hachage. Deuxièmement, cela nous permet de déterminer facilement si une URL existe déjà dans la base de données, sans révéler son véritable identifiant.

Conclusion

Si les fonctions de hachage ont certainement leur place dans cryptographie, les bases de nombres alternatives offrent une approche plus efficace et anti-collision pour générer des hachages courts en PHP. En adoptant cette technique, les développeurs peuvent créer des liens compacts et mémorables qui facilitent des expériences Web plus fluides.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn