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

Gerador de header Basic Auth

Digite usuário e senha para obter Authorization: Basic … e código pronto para rodar em curl, fetch, Node.js, Python e PHP. A ferramenta avisa sobre caracteres que quebram a Basic auth.

Grátis sem cadastro, sem limites Local nada é enviado Trechos de código curl, fetch, Node.js, Python, PHP Atualizado 27 de out. de 2026
Header HTTP

Código pronto para usar

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

Como gerar um header Basic Auth

  1. Preencha Usuário e Senha.
  2. Deixe o Charset em UTF-8, a menos que o servidor seja antigo e espere ISO-8859-1 (Latin-1).
  3. Copie o resultado com Copiar header para a linha completa Authorization: Basic …, ou com Copiar só o token para a parte em Base64.
  4. Em Código pronto para usar, ajuste a URL para o seu endpoint e copie o trecho do seu cliente. Inverter envia o header ao decodificador para uma conferência.

O que o header contém

A autenticação Basic é definida na RFC 7617. O cliente junta os dois valores com dois-pontos, codifica os bytes em Base64 e os envia em um header:

UsuárioSenhaValor do header
Aladdinopen sesameBasic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
deployhunter2Basic ZGVwbG95Omh1bnRlcjI=
josépässwördBasic am9zw6k6cMOkc3N3w7ZyZA== (UTF-8)
josépässwördBasic am9z6Tpw5HNzd/ZyZA== (Latin-1)

As duas últimas linhas mostram por que o charset importa: o mesmo texto gera bytes diferentes, então um servidor que espera a outra codificação vê uma senha errada. Um servidor que quer UTF-8 pode dizer isso no desafio: WWW-Authenticate: Basic realm="api", charset="UTF-8".

O Base64 aqui é só um formato de transporte. Qualquer um que copie o header pode transformá-lo de volta na senha com o decodificador de Basic Auth, e é por isso que Basic auth só deve ser usada com HTTPS. Base64 não é criptografia trata disso em mais detalhes.

Caracteres sobre os quais a ferramenta avisa

  • Dois-pontos no usuário. A RFC 7617 proíbe. O servidor divide no primeiro dois-pontos, então parte do usuário iria parar na senha.
  • Caracteres de controle, como tabulações ou quebras de linha, que não são permitidos em credenciais Basic.
  • Caracteres que não existem no Latin-1 quando esse charset está selecionado, por exemplo emoji ou cirílico. Eles são trocados por ?, o que nunca é o que você quer.
  • Não ASCII em UTF-8. Correto segundo a RFC, mas servidores legados podem ler de outro jeito, então teste antes.

Dois-pontos na senha são permitidos, já que só o primeiro separa os dois valores.

Como enviar Basic auth pelo código

Os trechos na ferramenta são gerados com os seus valores e com as aspas certas para cada linguagem. As versões simples são assim:

curl -u 'deploy:hunter2' https://api.example.com/
import requests

r = requests.get("https://api.example.com/",
                 auth=("deploy".encode("utf-8"), "hunter2".encode("utf-8")))

O exemplo em Python passa bytes de propósito. Quando o requests recebe valores str, ele os codifica como Latin-1, então uma senha com € ou ł falharia; com bytes, ele envia exatamente o UTF-8 que você escolheu.

No JavaScript do navegador, monte o header você mesmo: o fetch recusa URLs com user:pass@, e o btoa() lança erro com caracteres fora do Latin-1, então codifique a string em bytes UTF-8 antes do Base64. O trecho de fetch gerado contorna as duas coisas embutindo o token pronto. O guia de Base64 em JavaScript explica o passo do UTF-8, e a página de Node.js mostra a versão com Buffer.

Quando a requisição continua devolvendo 401

Confira primeiro o header WWW-Authenticate da resposta. Se ele disser Bearer, a API espera um token e nunca vai aceitar credenciais Basic. Se disser Basic, decodifique o header que você realmente enviou (com curl -v ele aparece como > Authorization: Basic …) e compare com o que esperava; espaços sobrando ou uma quebra de linha no final copiada de um gerenciador de senhas são culpados comuns. Proxies usam um header próprio, Proxy-Authorization, com o mesmo formato.

Perguntas frequentes

Como o header de Basic auth é montado?

Junte o usuário e a senha com dois-pontos, codifique essa string em bytes UTF-8, codifique os bytes em Base64 e coloque Basic na frente. Aladdin e open sesame dão Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==.

A autenticação Basic é segura?

Só via HTTPS. O Base64 não esconde nada, então qualquer um que leia a requisição decodifica a senha em um segundo. Com TLS, o header é criptografado junto com o resto da requisição.

A senha pode ter dois-pontos?

Pode. O servidor divide no primeiro dois-pontos, então tudo depois dele pertence à senha. É o usuário que não pode conter dois-pontos.

Por que minha senha com caracteres não ASCII falha em alguns servidores?

A RFC 7617 permite que servidores peçam UTF-8, mas os mais antigos decodificam o header como ISO-8859-1. test:123£ é dGVzdDoxMjPCow== em UTF-8 e dGVzdDoxMjOj em Latin-1. Experimente o outro Charset ou fique só no ASCII.