Gerador de Basic Auth: Cabeçalho Authorization em Base64

Gere o cabeçalho Authorization: Basic a partir de usuário e senha (Base64 em UTF-8), com exemplos de curl, fetch e Python, e decodifique um Basic Auth.

Gerador de Basic Auth online

Digite usuário e senha para obter o cabeçalho Authorization: Basic … pronto para colar, com exemplos em curl, fetch, axios, Python e wget. Logo abaixo, o caminho inverso: cole um cabeçalho (ou só o Base64) e veja o usuário e a senha que estão dentro dele. Tudo é calculado no navegador; nada é enviado.

Gerar o cabeçalho

Digite usuário e senha: o cabeçalho aparece na hora, sem enviar nada.

Decodificar um cabeçalho Basic

Base64 não é criptografia: qualquer pessoa que veja o cabeçalho recupera a senha, como o decodificador acima mostra. Use Basic Auth somente sobre HTTPS. Tudo aqui é calculado no seu navegador — usuário e senha não são enviados nem guardados.

O que é HTTP Basic Authentication

É o esquema de autenticação mais simples do HTTP, definido hoje pela RFC 7617 (de 2015, que substituiu a RFC 2617). O cliente junta usuário e senha com dois-pontos, converte o resultado para Base64 e manda no cabeçalho Authorization:

usuario:senha  →  bytes em UTF-8  →  Base64  →  Authorization: Basic <base64>

O exemplo da própria RFC usa o usuário Aladdin e a senha open sesame:

Aladdin:open sesame
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Quando a requisição chega sem credencial (ou com credencial errada), o servidor responde 401 Unauthorized com o cabeçalho WWW-Authenticate: Basic realm="…", e o cliente repete a requisição com o Authorization. Para proxies, o par equivalente é 407 + Proxy-Authorization.

Como usar

  1. Preencha usuário e senha. O cabeçalho aparece enquanto você digita.
  2. Copie o cabeçalho inteiro ou só o Base64, conforme o lugar onde vai colar (Postman, Insomnia, arquivo .env, configuração de proxy).
  3. Se quiser, informe a URL da sua API para os exemplos saírem prontos.
  4. Para conferir um cabeçalho que você recebeu ou encontrou num log, use o decodificador.

Regras que costumam dar erro

  • O usuário não pode ter :. O servidor separa as duas partes no primeiro dois-pontos; por isso a senha pode conter :, mas o usuário não. A ferramenta bloqueia esse caso.
  • Caracteres de controle são proibidos (quebra de linha, tabulação). Um \n copiado sem querer no fim da senha é uma causa comum de “401 sem motivo”.
  • Espaços contam. senha e senha geram Base64 diferentes; a ferramenta avisa quando há espaço nas pontas.
  • O = do final faz parte do valor. Ele é o preenchimento do Base64; não corte.

UTF-8, acentos e o parâmetro charset

Enquanto usuário e senha só têm letras sem acento, números e símbolos ASCII, não há dúvida sobre os bytes. Com ç, ã, £ ou emoji, a codificação muda o resultado. A RFC 7617 traz o exemplo do usuário test com a senha 123£:

CodificaçãoBase64
UTF-8dGVzdDoxMjPCow==
ISO-8859-1dGVzdDoxMjOj

A RFC antiga não dizia qual codificação usar, e cada cliente escolheu a sua. A 7617 resolveu assim: o servidor pode anunciar charset="UTF-8" no desafio —

WWW-Authenticate: Basic realm="Painel", charset="UTF-8"

— avisando que espera as credenciais em UTF-8. Esse é o único valor permitido para o parâmetro. Esta ferramenta sempre gera UTF-8 e, quando o texto cabe em ISO-8859-1, mostra também a variante antiga, útil para diagnosticar um servidor legado. O decodificador faz o inverso: tenta UTF-8 e, se os bytes não forem válidos, lê como ISO-8859-1 e avisa.

Nos exemplos gerados, quando há caracteres fora do ASCII o código do axios passa a usar o cabeçalho pronto e o do Python envia bytes em UTF-8, porque o requests codifica textos em Latin-1 por padrão.

Base64 não é criptografia

Base64 é só uma forma de escrever bytes com 64 caracteres seguros; não tem chave nem segredo. Quem enxerga o cabeçalho recupera a senha em um segundo, como o decodificador desta página demonstra. Consequências práticas:

  • Use Basic Auth somente sobre HTTPS. Em HTTP puro, a senha trafega legível para qualquer um no caminho.
  • O cabeçalho vai em todas as requisições. Não o registre em logs, não o cole em issues nem em prints.
  • Evite a forma https://usuario:[email protected]: a credencial fica no histórico e em logs, e os navegadores atuais restringem ou removem esse trecho.
  • Para APIs novas, tokens com validade e escopo (OAuth 2.0, JWT) costumam ser melhores. Basic continua adequado para ferramentas internas, webhooks e APIs que usam uma chave como usuário, sempre com TLS.
  • No servidor, guarde só o hash da senha (com um algoritmo próprio para senhas, como bcrypt ou Argon2), nunca o texto.

Limitações

  • A ferramenta monta e lê o cabeçalho; ela não testa a credencial contra nenhum servidor.
  • A RFC recomenda normalizar o texto Unicode antes de codificar; aqui os caracteres são usados exatamente como você digitou.
  • As aspas dos exemplos de curl e wget valem para bash e zsh. No CMD do Windows, troque por aspas duplas.

Perguntas frequentes

Como decodificar um Basic Auth?

Cole o cabeçalho completo ou só o trecho depois de Basic no decodificador. Ele desfaz o Base64 e separa usuário e senha no primeiro dois-pontos. Também serve o decodificador de Base64, que mostra o texto usuario:senha sem separar.

Qual a diferença entre curl -u e curl -H?

Com -u usuario:senha o curl faz o Base64 e monta o cabeçalho. Com -H "Authorization: Basic …" você entrega o valor pronto. O resultado na rede é o mesmo; -H é útil quando você só tem o Base64 ou quer garantir a codificação UTF-8.

Posso usar e-mail como usuário?

Sim. O @ é permitido; só o dois-pontos é proibido no usuário.

Basic Auth é seguro?

Com HTTPS, a credencial trafega cifrada pelo TLS, e o esquema é aceitável para muitos usos. O ponto fraco é que a senha real acompanha cada requisição e não expira sozinha; por isso vale usar senhas longas e exclusivas e trocar quando houver suspeita de vazamento.

Por que recebo 401 mesmo com o cabeçalho certo?

Causas mais comuns: espaço ou quebra de linha sobrando na senha, = cortado, codificação diferente da que o servidor espera (veja a seção sobre UTF-8), ou um proxy que remove o cabeçalho Authorization em redirecionamentos.

Veja também