Charger un fichier
  1. base64hub
  2. Outils web et jetons
  3. Décodeur Basic Auth

Décodeur Basic Auth

Collez un en-tête Authorization: Basic …, le jeton seul, ou une URL contenant user:pass@. L’outil sépare le nom d’utilisateur et le mot de passe et indique dans quel jeu de caractères étaient les octets.

Gratuit sans inscription, sans limites Local rien n'est envoyé Auto détection UTF-8 ou Latin-1 Mis à jour 27 oct. 2026

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

Comment décoder un en-tête Basic auth

  1. Collez la valeur dans En-tête Authorization, jeton Basic ou URL avec identifiants. Toutes ces formes fonctionnent :
    • Authorization: Basic YWRtaW46czNjcjN0OnBhc3M=
    • Proxy-Authorization: Basic …
    • Basic YWRtaW46czNjcjN0OnBhc3M= ou le jeton seul
    • https://user:password@host/path
  2. Laissez Jeu de caractères sur Auto, ou forcez UTF-8 ou ISO-8859-1 si le résultat semble faux.
  3. Lisez Nom d’utilisateur et Mot de passe, copiez l’un ou l’autre, et vérifiez Octets décodés (hex) quand un caractère paraît suspect.

Seul le schéma Basic est décodé. Les en-têtes Digest et NTLM ont un autre format et seront signalés comme un autre schéma.

Ce qu’affiche le décodeur

EntréeNom d’utilisateurMot de passeRemarque
Basic YWRtaW46czNjcjN0OnBhc3M=admins3cr3t:passSeul le premier deux-points sépare ; le mot de passe garde son deux-points.
dGVzdDoxMjOjtest123£Pas de l’UTF-8 valide : Auto se rabat donc sur le Latin-1.
dGVzdDoxMjPCow==test123£Même texte, octets UTF-8.
https://ci-bot:p%40ss@ci.example.com/ci-botp@ssExtrait de l’URL et décodé en pourcent.
Bearer eyJhbGciOi…Erreur : un jeton Bearer, avec un lien vers le décodeur JWT.

La détection automatique procède dans l’ordre. L’ASCII pur se décode de la même façon dans tous les jeux de caractères ; les octets qui forment de l’UTF-8 valide sont lus en UTF-8 ; tout le reste est lu en ISO-8859-1, l’ancien encodage par défaut des en-têtes HTTP. Latin-1 désigne ici le vrai ISO-8859-1. Windows-1252 en diffère dans la plage 0x80–0x9F, où se trouvent des caractères comme € : un mot de passe en Windows-1252 peut donc apparaître sous forme de caractères de contrôle.

Le décodeur tolère les jetons approximatifs, avec un remplissage = manquant ou des - et _ URL-safe, et le signale, car les serveurs stricts les rejetteraient. Si le décodage donne un texte sans aucun deux-points, la valeur n’était pas une paire user:password, et l’outil l’indique.

Où l’on trouve des identifiants Basic

  • Outils de développement du navigateur. L’onglet Réseau affiche les en-têtes de chaque requête, Authorization compris.
  • curl. curl -v affiche la requête : -u user:pass apparaît donc sous la forme > Authorization: Basic ….
  • Fichiers HAR et captures de proxy, qui stockent les en-têtes complets de chaque requête.
  • Configurations de serveurs et de proxys, où un en-tête codé en dur donne accès à un backend, par exemple proxy_set_header Authorization "Basic …" dans nginx.
  • Identifiants de registre Docker. Le champ auth de ~/.docker/config.json est le Base64 de user:password ; le décodeur dockerconfigjson ouvre le fichier entier.
  • Journaux d’application, quand un framework journalise les en-têtes entrants sans les masquer.

Chacun de ces cas est un mot de passe en clair avec une seule couche d’encodage : traitez-le comme le mot de passe lui-même. Le Base64 n’est pas un chiffrement explique pourquoi l’encodage ne protège rien.

Décoder l’en-tête côté serveur

Les frameworks le font normalement pour vous, mais un petit parseur est utile dans les scripts et les tests :

import base64

def parse_basic(header_value):
    scheme, _, token = header_value.strip().partition(" ")
    if scheme.lower() != "basic":
        raise ValueError("not a Basic credential")
    user, colon, password = base64.b64decode(token).decode("utf-8").partition(":")
    if not colon:
        raise ValueError("no colon in the decoded value")
    return user, password

print(parse_basic("Basic YWRtaW46czNjcjN0OnBhc3M="))

Le script affiche ('admin', 's3cr3t:pass'). Le nom du schéma est insensible à la casse : comparez-le en minuscules, et utilisez toujours partition ou split(":", 1) pour qu’un deux-points dans le mot de passe soit préservé. Vérifiez le mot de passe avec une comparaison en temps constant, par exemple hmac.compare_digest sur les octets encodés, plutôt qu’avec ==. Pour le sens inverse, utilisez le générateur d’en-tête Basic Auth ; d’autres recettes Base64 se trouvent sur la page Python.

FAQ

Comment décoder un jeton Basic auth à la main ?

Retirez le mot Basic et l’espace, décodez le reste en Base64 et coupez au premier deux-points. Sous Linux ou macOS : echo 'YWRtaW46czNjcjN0OnBhc3M=' | base64 -d affiche admin:s3cr3t:pass.

Que signifie « C'est un jeton Bearer » ?

L’en-tête utilise le schéma Bearer : il transporte un jeton plutôt qu’un nom d’utilisateur et un mot de passe. Les jetons Bearer sont souvent des JWT ; ouvrez-les dans le décodeur JWT.

Pourquoi le mot de passe décodé contient-il un symbole bizarre ?

Les octets ont probablement été écrits dans un autre jeu de caractères que celui utilisé pour les lire. Basculez Jeu de caractères entre Auto, UTF-8 et ISO-8859-1, et vérifiez les octets hex : C2 A3 est £ en UTF-8, alors qu’un A3 seul est £ en Latin-1.

J'ai trouvé un en-tête Basic auth dans un journal. Que faire ?

Considérez le mot de passe comme divulgué et changez-le. Puis colmatez la fuite : configurez le proxy, le serveur web ou la bibliothèque de journalisation pour masquer l’en-tête Authorization.