DevFormat
Language
Retour au blog
10 mars 2026

System Design 101 : Pourquoi les raccourcisseurs d'URL utilisent MD5 et Base64

Une analyse simple de cette question classique d'entretien en System Design. Apprenez la différence entre Hashing et Encoding.

Si vous vous préparez à des entretiens d''ingénierie logicielle, on vous demandera presque certainement de concevoir un raccourcisseur d''URL (comme TinyURL ou Bitly).

Le cœur de ce problème de System Design repose sur la compréhension de deux concepts fondamentaux : le Hashing et l''Encoding.

Voici pourquoi générer simplement une chaîne aléatoire ne suffit pas, et pourquoi les ingénieurs utilisent une combinaison de MD5 et de Base64.

Étape 1 : Le Hash (Unicité)

Si vous collez une URL longue dans un raccourcisseur, le système a besoin d''un moyen de garantir que la même URL génère toujours le même identifiant court. Pour cela, nous utilisons une fonction de Hash comme MD5.

Le MD5 prend n''importe quelle chaîne et la transforme en un hash de 128 bits de longueur fixe (généralement représenté par 32 caractères hexadécimaux). Exemple : https://devformattx.vercel.app devient a5b...

👉 Essayez de générer un Hash MD5 localement ici

Étape 2 : L''Encodage (Compression)

Un hash MD5 de 32 caractères est trop long pour une URL "Tiny". Nous devons le compresser.

C''est là qu''intervient l''Encodage Base64. Le Base64 prend les données binaires du hash et les représente à l''aide de 64 caractères différents (A-Z, a-z, 0-9, +, /). Comme nous utilisons 64 caractères au lieu de seulement 16 (Hex), nous pouvons représenter les mêmes données dans une chaîne beaucoup plus courte. Nous prenons généralement les 7 premiers caractères de cette chaîne Base64 pour servir d''URL courte finale.

👉 Essayez d''encoder une chaîne en Base64 ici

La règle d''or pour les entretiens

Ne confondez jamais Hashing et Encoding !

  • Hashing (MD5/SHA-256) : Unidirectionnel. Vous ne pouvez pas inverser un hash pour retrouver l''URL d''origine.
  • Encoding (Base64) : Bidirectionnel. Tout le monde peut décoder une chaîne Base64 pour retrouver sa forme originale.

Entraînez-vous à passer des chaînes dans les deux outils pour comprendre la différence avant votre prochain entretien technique !

Outil de formatage associé

Besoin de formater votre code maintenant ? Utilisez nos outils sécurisés.

Ouvrir le formateur JSON