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!