Charger un fichier
  1. base64hub
  2. Outils texte
  3. Validateur Base64

Validateur Base64

Collez une chaîne pour savoir si c’est du Base64 valide et, sinon, exactement où et pourquoi : le caractère fautif, sa ligne et sa colonne, et le remplissage nécessaire. Un score estime s’il s’agit seulement de Base64.

Gratuit sans inscription, sans limites Local rien n'est envoyé Positions ligne, colonne et offset de chaque problème Mis à jour 27 oct. 2026

Traité dans votre navigateur. Cette page ne peut envoyer vos données nulle part – comment le savons-nous

Comment valider une chaîne Base64

  1. Collez la chaîne dans Base64 à vérifier. Les sauts de ligne, l’armure PEM et les préfixes data: peuvent rester : ils sont signalés comme constats et le reste est quand même analysé.
  2. Lisez le verdict en haut. Chaque problème est listé avec sa position, par exemple « ligne 3, colonne 17 (car. 169) ».
  3. Regardez Votre entrée, problèmes surlignés pour voir les caractères fautifs marqués sur place.
  4. Consultez À quelles variantes de Base64 correspond-elle ? pour savoir si la chaîne est valide en Base64 standard, sans remplissage, URL-safe, MIME ou PEM, et pourquoi elle échoue là où elle échoue.
  5. Appuyez sur Corriger pour passer en mode réparation, qui nettoie la chaîne.

Ce que vérifie le validateur

  • Les caractères hors de l’alphabet, affichés avec leur point de code Unicode pour rendre visibles les caractères invisibles comme l’espace insécable (U+00A0) ou l’espace sans chasse (U+200B).
  • Les alphabets mélangés : + et / du Base64 standard avec - et _ du Base64URL dans une même chaîne.
  • Un = au milieu, ce qui signifie presque toujours que deux valeurs encodées ont été collées ensemble.
  • Une longueur impossible : une fois le remplissage retiré, une longueur dont le reste vaut 1 dans la division par 4 ne peut sortir d’aucun encodeur. Un caractère manque ou est en trop.
  • Le remplissage : manquant, en trop ou ne correspondant pas à la longueur des données.
  • Les bits finaux non canoniques dans le dernier caractère (RFC 4648 §3.5).
  • Les espaces et le découpage des lignes : espaces et tabulations, largeur des lignes, et fins de ligne en CRLF, en LF ou mélangées.

Détails ajoute la longueur, la longueur mod 4, l’état du remplissage, l’alphabet, la taille décodée et le type de contenu détecté. La copie surlignée de l’entrée est limitée aux 20 000 premiers caractères, mais l’analyse couvre toujours la chaîne entière.

Même chaîne, décodeurs différents

« Valide » dépend de qui pose la question. Ces cinq chaînes ont été passées dans quatre décodeurs courants (Python 3.13, Node.js 24, le atob du WHATWG et GNU coreutils 9.7) :

EntréeProblèmePython b64decode(s, validate=True)Node Buffer.from(s, "base64")atob(s)base64 -d
SGVsbG8gd29ybGQ= manquanterreurHello worldHello worldHello world
SGVsbG9=dernier caractère non canoniqueHelloHelloHelloerreur
SGVsbG8=V29ybGQ=deux valeurs colléeserreurHello (le reste est perdu)erreurHelloWorld
SGVsbG8gdreste 1erreurHelloerreurerreur
SGVs bG8=une espaceerreurHelloHelloerreur

La case dangereuse est celle où Node renvoie tranquillement Hello pour l’entrée collée et perd la moitié des données sans la moindre erreur. Cet outil signale donc chaque écart, y compris ceux que votre propre décodeur tolère. Le tableau des variantes indique ensuite à quel format strict la chaîne correspond.

Une chaîne valide est-elle vraiment du Base64 ?

abcd, test et 1234 sont tous du Base64 valide. Chacun se décode en trois octets d’apparence aléatoire. L’outil répond donc aussi à Est-ce vraiment du Base64 ? avec un score de 0 à 100 et les raisons qui le justifient, chacune marquée comme plaidant pour ou contre le Base64 :

  • pour : un remplissage correct, un mélange de majuscules, minuscules et chiffres, une grande variété de caractères, un début en eyJ (le Base64 de {", typique du JSON et des JWT), ou des octets qui se décodent en un type de fichier connu ou en texte lisible ;
  • contre : uniquement des lettres (ce pourrait être un mot), uniquement des chiffres hex (ce pourrait être une chaîne hex), uniquement des chiffres (probablement un nombre), une seule casse, ou une chaîne très courte.

Prenez le score comme un indice : c’est une heuristique, et une chaîne courte peut la tromper dans un sens comme dans l’autre.

Vérifier du Base64 dans le code

Le test pratique le plus strict est l’aller-retour : décoder, réencoder et comparer. Il rejette d’un coup les espaces, le remplissage manquant et les fins non canoniques.

import base64

def is_canonical_base64(s):
    try:
        return base64.b64encode(base64.b64decode(s, validate=True)).decode() == s
    except ValueError:
        return False

En Node.js, la même idée s’écrit Buffer.from(s, "base64").toString("base64") === s. Une expression régulière comme ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$ vérifie l’alphabet et la longueur, mais elle accepte SGVsbG9= et la chaîne vide. Pour les chaînes URL-safe, convertissez-les d’abord ou utilisez l’alphabet correspondant ; voir Base64 et Base64URL. Les messages d’erreur propres à chaque langage sont rassemblés dans Erreurs Base64.

FAQ

Comment savoir si une chaîne est du Base64 ?

Au sens strict, une chaîne est du Base64 standard valide si elle n’utilise que A–Z, a–z, 0–9, + et /, si sa longueur est un multiple de 4 et si au plus deux = se trouvent à la fin. Beaucoup de mots ordinaires passent ce test : l’outil ajoute donc un score de 0 à 100 fondé sur l’aspect de la chaîne et sur ce qu’elle donne une fois décodée.

Pourquoi mon Base64 se décode-t-il dans un langage mais échoue-t-il dans un autre ?

Les décodeurs n’ont pas tous la même rigueur. Buffer.from de Node accepte presque tout, b64decode(s, validate=True) de Python refuse un remplissage manquant, et base64 -d de GNU refuse les derniers caractères non canoniques. Le tableau ci-dessus montre les mêmes cinq chaînes dans quatre décodeurs.

Qu'est-ce qu'un Base64 non canonique ?

Le dernier caractère porte quelques bits inutilisés qui devraient valoir zéro. SGVsbG8= et SGVsbG9= se décodent tous deux en Hello, mais seul le premier est canonique. La RFC 4648 autorise les décodeurs à refuser le second, et un réencodage ne le reproduit jamais.

Une chaîne Base64 valide est-elle sûre à décoder ?

La validité ne dit rien du contenu. La section Détails affiche la taille décodée et le type de contenu détecté, avec un lien vers le décodeur adapté : vous savez ainsi s’il s’agit de texte, d’une image ou d’autre chose avant de l’enregistrer.