1001Ferramentas
🔐Segurança

HIBP K-Anonymity (formato)

Explica o formato k-anonimato do Have I Been Pwned: SHA-1 da senha, primeiros 5 chars no GET e sufixo.

O cálculo é 100% local no seu navegador (SHA-1 via Web Crypto) — nada é enviado.

O serviço Pwned Passwords usa k-anonymity para nunca receber a senha completa.

  1. Compute o SHA-1 da senha em maiúsculas hex (40 chars)
  2. Envie um GET https://api.pwnedpasswords.com/range/<PRIMEIROS_5>
  3. O servidor responde com lista de sufixos (35 chars) + contagem
  4. Procure seu sufixo nessa lista localmente

Assim, o servidor nunca recebe a senha nem o hash completo.

Como o HIBP checa senha sem vê-la

Você quer saber se uma senha aparece em vazamentos, mas mandar a senha inteira para o servidor de um terceiro parece má ideia. O protocolo k-anonimato do Have I Been Pwned resolve isso, e esta página mostra a requisição exata, passo a passo, com a sua senha: digite no campo e veja o hash, o pedaço que sai e o pedaço que fica.

O fluxo tem quatro etapas. Calcule o SHA-1 da senha em hexadecimal maiúsculo, com 40 caracteres. Envie um GET para api.pwnedpasswords.com/range/ seguido dos cinco primeiros caracteres. O servidor responde com centenas de sufixos de 35 caracteres, cada um com a contagem de aparições. Você procura o seu sufixo nessa lista, na sua máquina. O SHA-1 aqui é calculado pela Web Crypto do próprio navegador.

Um ponto importante: a página não consulta a API. Ela formata e explica a requisição, e oferece um botão para copiar a URL pronta — quem faz o GET e roda o grep pelo sufixo é você, no terminal ou no seu código. O campo de senha é texto comum, sem máscara, então cuidado com quem está olhando a tela ou com uma gravação rodando. Se a senha for real e estiver em uso, troque-a de qualquer jeito depois do teste.

Perguntas frequentes

A ferramenta diz se minha senha vazou?
Não. Ela monta o hash e a URL do range. A consulta em si você faz depois, com curl ou com o cliente da sua linguagem, e compara o sufixo com a lista devolvida.
Minha senha sai do navegador?
Não nesta página: o SHA-1 é calculado localmente pela Web Crypto. E, mesmo quando você dispara a consulta, só os cinco primeiros caracteres do hash viajam.
Por que SHA-1 e não SHA-256?
Porque a base do Pwned Passwords foi montada assim e o endpoint continua compatível. As colisões conhecidas do SHA-1 não atrapalham um uso de simples consulta por chave.

Ferramentas Relacionadas