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
- Preencha usuário e senha. O cabeçalho aparece enquanto você digita.
- Copie o cabeçalho inteiro ou só o Base64, conforme o lugar onde vai colar (Postman, Insomnia, arquivo
.env, configuração de proxy). - Se quiser, informe a URL da sua API para os exemplos saírem prontos.
- 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
\ncopiado sem querer no fim da senha é uma causa comum de “401 sem motivo”. - Espaços contam.
senhaesenhageram 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ção | Base64 |
|---|---|
| UTF-8 | dGVzdDoxMjPCow== |
| ISO-8859-1 | dGVzdDoxMjOj |
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.