Encodage et hachage pour développeurs
Guide pratique sur l'encodage Base64, URL, les algorithmes de hash et les tokens JWT. Outils et concepts utilisés par tous les développeurs.
L'encodage et le hachage apparaissent partout dans le développement web. Intégrer des images en CSS ? Base64. Passer des données dans les URLs ? Encodage URL. Stocker des mots de passe ? Hachage. Authentifier des utilisateurs ? JWTs. Ce ne sont pas des concepts exotiques — ce sont des nécessités quotidiennes.
Base64 : du binaire au texte
Base64 convertit les données binaires en texte ASCII. Ça paraît simple, mais c'est étonnamment utile.
Besoin d'intégrer une petite image directement dans du HTML ou CSS ? Base64. Envoyer des données binaires via une API JSON ? Base64. Encoder des identifiants pour Basic Auth ? Vous avez deviné.
L'encodeur/décodeur Base64 gère les deux directions. Collez vos données binaires ou texte, obtenez la version encodée. Collez du Base64, récupérez l'original. Je l'utilise constamment pour débugger des pièces jointes email et des data URIs.
Une mise en garde : Base64 augmente la taille d'environ 33%. Acceptable pour les petits assets, problématique pour les gros fichiers.
Encodage URL : caractères sûrs uniquement
Les URLs ont des règles sur les caractères autorisés. Espaces, caractères spéciaux, texte non-ASCII — tout nécessite un encodage pour voyager en sécurité sur le web.
L'Encodeur URL convertit les caractères problématiques en équivalents encodés en pourcentage. L'espace devient %20. Votre emoji devient une longue chaîne de codes pourcentage.
C'est important quand vous construisez des query strings dynamiquement, gérez des entrées utilisateur dans les URLs, ou débuguez pourquoi un lien ne fonctionne pas. Souvent le problème est un seul caractère non encodé qui casse toute l'URL.
Hachage : transformation à sens unique
Le hachage prend une entrée et produit une sortie de longueur fixe. La même entrée donne toujours le même hash. Mais vous ne pouvez pas inverser — c'est le but.
Le Générateur de Hash supporte MD5, SHA-1, SHA-256 et autres. Utilisez SHA-256 pour tout ce qui concerne la sécurité. MD5 est acceptable pour les checksums mais cassé pour la sécurité.
Usages courants : vérifier l'intégrité des fichiers (le téléchargement s'est-il bien terminé ?), stocker les mots de passe (ne jamais stocker en clair !), créer des identifiants uniques à partir du contenu.
Pour l'encodage HTML, il s'agit de prévenir les attaques XSS en échappant les caractères spéciaux comme < et > avant d'afficher les entrées utilisateur.
JWT : des tokens qui portent des données
Les JSON Web Tokens sont partout dans l'authentification moderne. Cette longue chaîne que votre API retourne ? Ce sont en fait trois parties encodées en Base64 séparées par des points.
Le Décodeur JWT décompose tout ça. Voyez le header (algorithme utilisé), le payload (les claims réels), et vérifiez la structure. Vous ne pouvez pas vérifier la signature sans le secret, mais vous pouvez inspecter tout le reste.
Débugage de problèmes d'auth ? Vérifiez l'expiration du token. Claims incorrects ? Voyez-les clairement. Le token ne se décode pas ? Peut-être qu'il est malformé.
Choisir le bon outil
L'encodage est réversible — vous pouvez toujours récupérer l'original. Le hachage non — c'est une voie à sens unique.
Utilisez Base64 pour : intégrer du binaire dans du texte, Basic Auth, data URIs.
Utilisez l'encodage URL pour : query strings, caractères spéciaux dans les URLs.
Utilisez le hachage pour : mots de passe, vérifications d'intégrité, IDs uniques.
Utilisez JWT pour : tokens d'authentification, passer des claims entre services.
Ces transformations sont des briques fondamentales de la sécurité web et de la manipulation des données. Comprendre quand encoder vs. hacher, et avoir des outils prêts pour les deux, rend le développement plus fluide et plus sécurisé.