Partez du système destinataire
Avant de choisir un outil, déterminez où la valeur sera utilisée. Les entités HTML représentent des caractères comme & dans du texte HTML. L’encodage en pourcentage prépare une valeur pour un composant d’URL, où espaces et caractères réservés doivent suivre des règles précises. Base64 représente des octets avec un alphabet limité, pratique lorsqu’un système textuel doit transporter des données binaires. SHA-256 produit une empreinte de longueur fixe pour comparer des données, pas pour retrouver l’original. Aucune de ces quatre opérations n’est un chiffrement. Si une information doit rester confidentielle, utilisez une méthode de chiffrement authentifié adaptée à l’application, plutôt qu’un texte masqué par Base64 ou par une empreinte.
Une entrée, quatre sorties
Prenons le texte A&B. Dans du texte HTML ordinaire, l’esperluette peut s’écrire A&B ; le navigateur affiche de nouveau A&B. Dans un composant d’URL, le résultat est A%26B, car une esperluette non encodée peut séparer des paramètres. En UTF-8, ces trois caractères correspondent aux octets hexadécimaux 41 26 42 ; Base64 standard les représente par QSZC. Un outil SHA-256 renvoie plutôt une longue empreinte hexadécimale ; une petite modification de l’entrée produit normalement une empreinte très différente. Ces sorties ne sont pas interchangeables : Base64 peut contenir des caractères réservés dans une URL, et une empreinte ne permet pas de reconstruire le texte.
- A&B — texte original
- HTML : A&B · URL : A%26B
- Base64 : QSZC · SHA-256 : empreinte
Réversibilité et sécurité
Les entités HTML, l’encodage en pourcentage et Base64 sont réversibles lorsque le contexte et l’encodage d’entrée sont connus. Ils ne garantissent donc aucun secret : chacun peut décoder Base64 sans clé. SHA-256 est conçu pour être à sens unique, mais hacher directement un mot de passe prévisible ne suffit pas pour le stocker sûrement ; il faut un mécanisme spécialisé avec sel. Une empreinte seule ne prouve pas non plus l’identité de l’expéditeur sans protocole authentifié. Sur le Web, l’échappement dépend du contexte : texte HTML, attribut, URL et source JavaScript n’obéissent pas aux mêmes règles. Réutiliser dans un contexte une chaîne échappée pour un autre peut être dangereux.
Une méthode de conversion
Identifiez d’abord le texte brut et le format attendu. Pour insérer du texte dans HTML, représentez les caractères nécessaires avec des entités ; dans une application, confiez la gestion du balisage à un système de modèles fiable. Pour placer une valeur dans un paramètre d’URL, encodez ce composant une seule fois, puis ajoutez-le au paramètre. Si une interface exige Base64, convertissez d’abord le texte en octets selon l’encodage convenu, généralement UTF-8. Si vous comparez l’intégrité de deux séquences d’octets, calculez leur empreinte avec le même algorithme. Gardez les octets initiaux si vous devez ensuite réafficher le message.
Vérifiez l’aller-retour
Pour toute transformation réversible, essayez le décodeur correspondant. Attention au double encodage : encoder encore A%26B introduit %25, et un décodage ne retire qu’une couche. Vérifiez si le destinataire de Base64 attend l’alphabet standard, sa variante compatible avec les URL ou des caractères de remplissage. Pour une empreinte, l’encodage exact des octets compte, y compris retours à la ligne et espaces finaux ; deux textes semblables peuvent produire des empreintes différentes. Le convertisseur Base64 intégré ci-dessous permet de tester le cas réversible. Les liens vers les outils HTML, URL et SHA-256 couvrent les autres besoins ; choisissez la sortie correspondant au système destinataire.