Enviar um arquivo
  1. base64hub
  2. Web e tokens
  3. Decodificador de Basic Auth

Decodificador de Basic Auth

Cole um header Authorization: Basic …, só o token ou uma URL com user:pass@. A ferramenta separa o usuário e a senha e mostra em que charset os bytes estavam.

Grátis sem cadastro, sem limites Local nada é enviado Automático detecção de UTF-8 ou Latin-1 Atualizado 27 de out. de 2026

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como decodificar um header de Basic auth

  1. Cole o valor em Header Authorization, token Basic ou URL com credenciais. Todos estes funcionam:
    • Authorization: Basic YWRtaW46czNjcjN0OnBhc3M=
    • Proxy-Authorization: Basic …
    • Basic YWRtaW46czNjcjN0OnBhc3M= ou só o token
    • https://user:password@host/path
  2. Deixe o Charset em Detectar automaticamente, ou force UTF-8 ou ISO-8859-1 se o resultado parecer errado.
  3. Leia Usuário e Senha, copie qualquer um dos dois e confira Bytes decodificados (hex) quando algum caractere parecer suspeito.

Só o esquema Basic é decodificado. Headers Digest e NTLM têm outro formato e aparecem como outro esquema.

O que o decodificador mostra

EntradaUsuárioSenhaObservação
Basic YWRtaW46czNjcjN0OnBhc3M=admins3cr3t:passSó o primeiro dois-pontos divide; a senha mantém o dela.
dGVzdDoxMjOjtest123£Não é UTF-8 válido, então a detecção automática recorre ao Latin-1.
dGVzdDoxMjPCow==test123£O mesmo texto, em bytes UTF-8.
https://ci-bot:p%40ss@ci.example.com/ci-botp@ssExtraído da URL e com %-decodificação.
Bearer eyJhbGciOi…Erro: um token Bearer, com link para o decodificador de JWT.

A detecção automática segue uma ordem. ASCII puro decodifica igual em qualquer charset; bytes que formam UTF-8 válido são lidos como UTF-8; o resto é lido como ISO-8859-1, o antigo padrão dos headers HTTP. Latin-1 aqui significa ISO-8859-1 de verdade. O Windows-1252 difere dele na faixa 0x80–0x9F, onde ficam caracteres como €, então uma senha em Windows-1252 pode aparecer como caracteres de controle.

O decodificador é tolerante com tokens malfeitos, como preenchimento = ausente ou - e _ URL-safe, e avisa, porque servidores rígidos os rejeitariam. Se a decodificação der um texto sem nenhum dois-pontos, o valor não era um par user:password, e a ferramenta informa isso.

Onde aparecem credenciais Basic

  • Ferramentas de desenvolvedor do navegador. A aba Network mostra os headers de cada requisição, incluindo Authorization.
  • curl. curl -v imprime a requisição, então -u user:pass aparece como > Authorization: Basic ….
  • Arquivos HAR e capturas de proxy, que guardam os headers completos de cada requisição.
  • Configurações de servidor e proxy, em que um header fixo dá acesso a um backend, por exemplo proxy_set_header Authorization "Basic …" no nginx.
  • Credenciais de registry Docker. O campo auth em ~/.docker/config.json é o Base64 de user:password; o decodificador de dockerconfigjson abre o arquivo inteiro.
  • Logs de aplicação, quando um framework registra os headers recebidos sem mascarar.

Cada um desses é uma senha em texto puro com uma camada de codificação, então trate-o como a própria senha. Base64 não é criptografia explica por que a codificação não protege nada.

Como decodificar o header no servidor

Frameworks normalmente fazem isso por você, mas um parser pequeno é útil em scripts e testes:

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="))

Ele imprime ('admin', 's3cr3t:pass'). O nome do esquema não diferencia maiúsculas de minúsculas, então compare em minúsculas, e use sempre partition ou split(":", 1) para que um dois-pontos na senha sobreviva. Verifique a senha com uma comparação de tempo constante, por exemplo hmac.compare_digest sobre os bytes codificados, em vez de ==. Para a direção inversa, use o gerador de header Basic Auth; mais receitas de Base64 na página de Python.

Perguntas frequentes

Como decodificar um token de Basic auth à mão?

Tire a palavra Basic e o espaço, decodifique o resto em Base64 e divida no primeiro dois-pontos. No Linux ou no macOS, echo 'YWRtaW46czNjcjN0OnBhc3M=' | base64 -d imprime admin:s3cr3t:pass.

O que significa "Isto é um token Bearer"?

O header usa o esquema Bearer, então carrega um token em vez de usuário e senha. Tokens Bearer costumam ser JWTs; abra-os no decodificador de JWT.

Por que a senha decodificada tem um símbolo estranho?

Os bytes provavelmente foram gravados em um charset diferente do usado para lê-los. Alterne o Charset entre Detectar automaticamente, UTF-8 e ISO-8859-1 e confira os bytes em hex: C2 A3 é £ em UTF-8, enquanto um A3 sozinho é £ em Latin-1.

Encontrei um header de Basic auth em um log. O que fazer?

Considere a senha vazada e troque-a. Depois feche o vazamento: configure o proxy, o servidor web ou a biblioteca de log para mascarar o header Authorization.