Comment décoder Base64 en ligne (et ce que signifie le résultat)
Vous disposez d’une chaîne de lettres et de chiffres apparemment aléatoires, se terminant peut-être par un ou deux signes égal, et vous devez savoir ce qu’elle dit. Il s’agit presque certainement de Base64, et son décodage révèle le texte ou les données d’origine. Voici comment décoder Base64, ce que le résultat vous indique et les deux variantes qui provoquent l'échec des décodeurs.
Comment le décoder
Le décodage Base64 est instantané : collez la chaîne codée dans un décodeur et il la reconvertit en texte original. Base64 est entièrement réversible, il s'agit d'un encodage et non d'un cryptage, donc aucune clé n'est nécessaire et n'importe qui peut décoder n'importe quelle chaîne Base64 en une seconde. Si le résultat est un texte lisible, vous avez votre réponse. Si le résultat ressemble à un déchet binaire, les données d'origine n'étaient pas du texte, il s'agissait peut-être d'une image, d'un fichier ou de données cryptées qui ont ensuite été codées en Base64, auquel cas les octets décodés ne sont pas destinés à être lus sous forme de texte.
Pourquoi vous auriez besoin de décoder Base64
Base64 apparaît à de nombreux endroits que vous devrez peut-être inspecter. L'en-tête et la charge utile d'un jeton d'authentification JWT sont codés en Base64 et leur décodage révèle les revendications qu'il contient. Les informations d'identification HTTP Basic Auth sont en Base64 dans l'en-tête Authorization. Les URL de données intègrent des images codées en Base64. La source de l'e-mail affiche les pièces jointes codées en base64. Les fichiers de configuration et les réponses API contiennent parfois des données Base64. Lorsque vous déboguez l'un d'entre eux, le décodage vous permet de voir ce qui s'y trouve réellement plutôt qu'un mur de caractères codés.
Le piège Unicode
Si votre texte décodé apparaît tronqué là où il devrait y avoir des accents ou des caractères non anglais, le problème est la gestion Unicode. Base64 encode les octets et le texte doit d'abord être transformé en octets via un encodage comme UTF-8. Un décodeur qui suppose l'ASCII simple modifiera les lettres accentuées, les emoji et les écritures non latines. Un décodeur approprié interprète les octets au format UTF-8, donc « café » et « こんにちは » décodent correctement. Si vous voyez du mojibake, des caractères tronqués, l'encodeur ou le décodeur a mal géré l'étape Unicode.
La variante sécurisée pour les URL
Si un décodeur rejette votre chaîne ou produit une sortie incorrecte, il peut s'agir de Base64url, la variante sécurisée pour les URL. La norme Base64 utilise les caractères + et /, mais ceux-ci posent des problèmes dans les URL, donc Base64url remplace + par - et / par _, et supprime souvent le remplissage =. Les JWT utilisent cette variante. Un décodeur standard strict peut s'étouffer avec les - et _ ou en cas de remplissage manquant. Le correctif consiste à reconvertir - en +, _ en / et à restaurer le remplissage avant le décodage, ou à utiliser un outil qui gère automatiquement les deux variantes.
N'oubliez pas : le décodage n'est pas le décryptage
Un point important. Le décodage de Base64 révèle tout ce qui a été codé, sans aucune clé requise, ce qui signifie que Base64 n'offre aucune sécurité. Si vous pouvez le décoder, n’importe qui d’autre le peut aussi. C'est pourquoi vous ne devez jamais stocker des mots de passe ou des secrets en Base64 en pensant qu'ils sont cachés ; ils sont trivialement lisibles. Le décodage d'une charge utile JWT vous montre les revendications mais ne vérifie pas le jeton, ce qui nécessite de vérifier la signature avec une clé secrète, une étape distincte. Base64 est une question de représentation, jamais de protection.