Aller au contenu
🛠️ToolsShed

HTTP Basic Auth Encoder

Encoder et décoder les identifiants d'authentification HTTP Basic en générant la valeur d'en-tête Authorization à partir du nom d'utilisateur et du mot de passe.

À propos de cet outil

HTTP Basic Auth Encoder construit et lit la valeur de l'en-tête Authorization: Basic, qui n'est rien d'autre que l'encodage en base64 d'un nom d'utilisateur et d'un mot de passe reliés par deux-points (username:password). Il résout le problème quotidien qui consiste à assembler ou à décoder cet en-tête à la main lorsqu'on travaille avec des API HTTP.

Pour encoder, saisissez un nom d'utilisateur et un mot de passe et l'outil renvoie la valeur de l'en-tête prête à l'emploi ; pour décoder, collez un en-tête Basic existant et il le sépare à nouveau en identifiants d'origine. C'est pratique pour tester des API, préparer des requêtes curl ou Postman et déboguer des réponses 401 Unauthorized où l'on doit vérifier ce qui a réellement été envoyé.

Gardez à l'esprit que le base64 de l'authentification Basic n'est qu'un encodage, et non un chiffrement : quiconque l'intercepte peut lire les identifiants. C'est pourquoi vous devez l'utiliser strictement via HTTPS. Tout s'exécute localement dans votre navigateur, et rien de ce que vous saisissez n'est jamais envoyé où que ce soit.

Questions Fréquentes

Implémentation du Code

import base64

def encode_basic_auth(username: str, password: str) -> str:
    credentials = f"{username}:{password}"
    encoded = base64.b64encode(credentials.encode("utf-8")).decode("utf-8")
    return f"Basic {encoded}"

def decode_basic_auth(header_value: str) -> tuple[str, str]:
    b64 = header_value.removeprefix("Basic ").strip()
    decoded = base64.b64decode(b64).decode("utf-8")
    username, _, password = decoded.partition(":")
    return username, password

header = encode_basic_auth("admin", "secret")
print(header)  # Basic YWRtaW46c2VjcmV0

user, pwd = decode_basic_auth(header)
print(f"Username: {user}, Password: {pwd}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.