BrowserTools
Accueil / Encodeurs / Générateur d'en-têtes Basic Auth

Générateur d'en-têtes Basic Auth

Construisez et décodez des en-têtes d'authentification HTTP Basic à partir d'un nom d'utilisateur et d'un mot de passe, entièrement dans votre navigateur.

Chargement de Générateur d'en-têtes Basic Auth… Si rien ne se passe, activez JavaScript.

L'authentification HTTP Basic est le schéma d'identifiants le plus simple défini pour le web, spécifié dans le RFC 7617. Pour s'authentifier, un client combine un nom d'utilisateur et un mot de passe en une seule chaîne séparée par deux-points, encode cette chaîne en base64 et l'envoie dans un en-tête Authorization préfixé par le mot Basic. Une requête vers un point d'accès protégé porte donc un en-tête tel que Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l. Comme le schéma est intégré à pratiquement tous les clients HTTP, bibliothèques et passerelles d'API, il reste un choix courant pour les services internes, les scripts, les webhooks et les tests rapides d'API où un flux complet basé sur des jetons serait excessif.

Questions fréquentes

Mon nom d'utilisateur et mon mot de passe sont-ils envoyés quelque part ?
Non. L'encodage et le décodage s'exécutent tous deux entièrement dans votre navigateur à l'aide d'API intégrées. Les identifiants que vous saisissez ne sont jamais téléversés, journalisés ni transmis à un serveur. L'outil continue de fonctionner hors ligne une fois la page chargée, il est donc sûr de l'utiliser avec de vrais identifiants pendant le développement.
Comment un en-tête Basic auth est-il construit ?
Le nom d'utilisateur et le mot de passe sont joints par un seul deux-points en une chaîne, par exemple aladdin:opensesame. Cette chaîne est encodée en octets UTF-8 puis en base64, produisant YWxhZGRpbjpvcGVuc2VzYW1l. L'en-tête final est le mot Basic, un espace et ce jeton : Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l.
L'authentification Basic est-elle sûre ?
Basic auth n'offre aucune confidentialité par elle-même. Le jeton base64 est trivialement réversible, donc quiconque l'intercepte apprend le mot de passe instantanément. Elle n'est sûre que lorsqu'elle est envoyée sur HTTPS, où TLS chiffre toute la requête, y compris l'en-tête. N'envoyez jamais Basic auth sur du HTTP en clair, et préférez les schémas basés sur des jetons tels que les Bearer tokens ou OAuth pour tout ce qui dépasse un simple usage interne.
Que se passe-t-il si mon mot de passe contient un deux-points ?
Seul le premier deux-points sépare le nom d'utilisateur du mot de passe, un mot de passe peut donc contenir sans risque des deux-points supplémentaires. Le nom d'utilisateur, en revanche, ne doit pas contenir de deux-points, car le serveur découpe au premier. Lors du décodage, cet outil découpe lui aussi au premier deux-points, préservant tout autre deux-points comme faisant partie du mot de passe.
Gère-t-il correctement les caractères non ASCII ?
Oui. L'outil encode le nom d'utilisateur et le mot de passe en UTF-8 avant le base64, de sorte que les lettres accentuées, les écritures non latines et les emoji sont préservés exactement. Le base64 simple du navigateur ne prend en charge que Latin-1 et lèverait une erreur ou corromprait de tels caractères, donc cette approche sûre pour UTF-8 correspond à ce que font les clients et serveurs HTTP conformes au titre du RFC 7617.
Puis-je décoder un jeton que je possède déjà ?
Oui. Passez à l'onglet Decode et collez soit un jeton base64 brut, soit un en-tête Authorization complet. L'outil supprime automatiquement les préfixes Authorization et Basic, décode la valeur en base64 et la découpe au premier deux-points pour afficher le nom d'utilisateur et le mot de passe d'origine.
Pourquoi le décodage échoue-t-il parfois ou n'affiche-t-il aucun deux-points ?
Le décodage échoue si la valeur collée n'est pas du base64 valide, souvent à cause d'espaces parasites, d'une copie tronquée ou d'un schéma d'authentification différent tel que Bearer. S'il se décode mais ne contient aucun deux-points, le jeton n'est probablement pas une paire d'identifiants Basic auth, puisque le schéma intègre toujours une chaîne utilisateur:mot de passe.
Comment utiliser l'en-tête généré avec curl ?
Copiez la ligne d'en-tête complète et passez-la avec l'option -H, par exemple curl -H "Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l" https://api.example.com. Sinon, curl peut construire l'en-tête à votre place avec l'option -u : curl -u aladdin:opensesame https://api.example.com produit le même résultat.

À propos de Générateur d'en-têtes Basic Auth

Ce générateur transforme un nom d'utilisateur et un mot de passe à la fois en l'en-tête Authorization complet et en le jeton base64 brut, chacun avec son propre bouton de copie afin que vous puissiez déposer la valeur directement dans curl, Postman, un appel fetch ou un fichier de configuration. Il utilise un encodeur sûr pour UTF-8, ce qui importe car le base64 simple dans le navigateur ne gère que les caractères Latin-1 par défaut. Si votre nom d'utilisateur ou votre mot de passe contient des lettres accentuées, des emoji ou tout caractère non ASCII, l'outil encode les octets correctement afin que le serveur destinataire reconstruise les identifiants exacts que vous avez saisis. La direction inverse est également prise en charge : collez un jeton base64 ou un en-tête Authorization complet et l'outil le redécoupe en le nom d'utilisateur et le mot de passe qu'il représente.

Tout se passe localement dans votre navigateur. Les identifiants que vous saisissez ne sont jamais téléversés, transmis ni stockés sur un serveur, ce qui rend l'outil sûr pour de vrais noms d'utilisateur et mots de passe pendant le développement et le débogage. Cela dit, l'authentification Basic n'offre aucune confidentialité par elle-même. L'étape base64 est réversible par n'importe qui, c'est donc de l'encodage, pas du chiffrement. Basic auth ne devrait jamais être envoyée que sur HTTPS, où TLS protège l'en-tête en transit. Utilisez cet outil pour construire des en-têtes de test et pour inspecter les jetons que vous avez reçus, et conservez les identifiants de production dans un véritable coffre à secrets plutôt que codés en dur dans les scripts.

Le plus ancien schéma d'authentification encore présent sur le web

L'authentification HTTP Basic remonte à la spécification originale de HTTP/1.0 en 1996 et a survécu pratiquement inchangée depuis. Son mécanisme est presque comiquement simple : prenez un nom d'utilisateur et un mot de passe, collez-les ensemble avec un deux-points, encodez le résultat en base64 et envoyez-le. Il n'y a ni hachage, ni nonce, ni échange défi-réponse du genre que l'on trouve dans l'authentification Digest. L'étape base64 existe uniquement pour rendre des octets d'identifiants arbitraires sûrs à placer dans un en-tête HTTP, pas pour cacher quoi que ce soit.

Cette simplicité est exactement la raison pour laquelle elle reste partout. Presque toutes les bibliothèques HTTP exposent un assistant d'une ligne pour elle, les passerelles d'API et les proxys inverses la prennent en charge nativement, et les développeurs peuvent construire l'en-tête à la main lors du débogage. Les microservices internes, les points de surveillance, les registres de paquets et d'innombrables systèmes hérités s'appuient encore sur elle parce qu'elle est universellement comprise et ne nécessite aucune infrastructure supplémentaire. Le hic, c'est que les identifiants voyagent à chaque requête, de sorte que la sécurité de tout le schéma repose entièrement sur la couche de transport sous-jacente.

Les célèbres identifiants d'exemple aladdin et opensesame, qui apparaissent dans le RFC 7617 et dans de nombreux tutoriels, sont un clin d'oeil au conte d'Ali Baba et les quarante voleurs, où opensesame (sésame, ouvre-toi) est la phrase magique qui ouvre la caverne cachée. C'est une métaphore appropriée pour un schéma d'authentification : prononcez le bon secret et la porte s'ouvre. La leçon que le conte et le schéma partagent est la même : un secret prononcé ou transmis n'est jamais plus sûr que les oreilles qui pourraient être à l'écoute, ce qui explique pourquoi Basic auth a strictement sa place à l'intérieur d'un tunnel HTTPS.

Soutenir