Verifique padrões fracos comuns em uma senha
Uma senha pode parecer complexa e ainda seguir um padrão que as ferramentas de adivinhação testam logo no início.
Executar grátis
Este verificador identifica atalhos muito comuns: sequências em teclas vizinhas, caracteres ou blocos de texto repetidos e palavras conhecidas disfarçadas com substituições, como usar zero no lugar da letra o. Ele faz uma análise local determinística e não consulta nenhum banco real de vazamentos. O resultado explica cada padrão detectado sem apresentar a ausência de correspondências como prova de segurança.
Entenda o que a verificação de padrões comuns abrange
Este verificador se concentra em três famílias de escolhas usadas quando alguém quer uma senha fácil de memorizar, mas visualmente elaborada. Uma sequência de teclado percorre teclas consecutivas, como um trecho da fileira numérica ou de uma fileira de letras QWERTY. A repetição inclui tanto um caractere digitado pelo menos três vezes quanto blocos com vários caracteres copiados imediatamente depois de si mesmos. A verificação de dicionário converte substituições conhecidas de volta em letras, remove separadores e procura um pequeno conjunto interno de palavras que invasores costumam priorizar. Por exemplo, trocar a por arroba ou o por zero não torna uma palavra conhecida imprevisível. A saída informa a categoria e o trecho correspondente para que um aplicativo ofereça orientação específica, em vez de exibir uma rejeição vaga. Uma categoria encontrada produz risco médio de padrão; duas ou mais produzem risco alto. Essa classificação descreve apenas os padrões contemplados, e não a segurança completa nem a força matemática da senha.
Interprete um resultado limpo com a cautela adequada
Um resultado baixo significa que nenhum dos padrões implementados apareceu. Isso não significa que a senha seja forte, exclusiva, privada ou ausente de vazamentos históricos. A capacidade evita deliberadamente bancos de vazamentos ativos ou baixados; por isso, `breach_database_checked` é sempre false. Ela também não estima entropia, não reproduz o conjunto completo de regras de um invasor, não verifica reutilização entre contas nem avalia o sistema que armazena a senha. Um nome curto, uma palavra incomum, uma data ou uma referência pessoal pode escapar desses testes fixos e continuar fácil de adivinhar. Use o resultado como um sinal específico em uma política de segurança em camadas. Prefira credenciais longas geradas aleatoriamente ou frases realmente desconexas, impeça a reutilização quando possível, adote limitação de tentativas e autenticação multifator e armazene credenciais com uma função moderna de derivação de senha. A recomendação devolvida em um resultado limpo preserva esse limite, sem conceder um certificado enganoso. Essa leitura conservadora permite usar o verificador como diagnóstico preciso, e não como medidor universal de força.
Forneça orientações claras com respeito à privacidade
A resposta foi estruturada para formulários de cadastro, telas de alteração de senha, treinamento de segurança e ferramentas locais de política. `common_pattern_detected` oferece uma ramificação simples para a lógica da interface, enquanto `patterns` fornece a categoria, o trecho correspondente e uma explicação curta. Assim, a interface pode informar que encontrou uma sequência de teclado ou que as substituições ainda revelam uma palavra comum. Evite registrar a entrada, os trechos encontrados ou a resposta completa em análises de produção, pois até partes de uma senha são dados sensíveis. Use a versão gratuita no navegador quando o usuário precisar de retorno local imediato ou chame a API por US$ 0,002 por solicitação ao integrar as regras determinísticas em um aplicativo. Uma senha vazia gera erro de entrada, e não um resultado de baixo risco, impedindo que um campo ausente seja confundido com uma credencial segura. Como o algoritmo usa tabelas fixas, sem rede, aleatoriedade, relógio ou estado compartilhado, entradas idênticas geram saídas idênticas. Essa estabilidade facilita testar políticas, enquanto o indicador explícito sobre vazamentos mantém a comunicação do produto honesta.
Casos de uso
Explique uma rejeição no cadastro
Mostre se a candidata contém uma sequência de teclado, repetição ou substituição facilmente reversível, em vez de retornar uma falha de política sem explicação.
Revise exemplos da política de senhas
Teste credenciais de exemplo usadas nas orientações internas e remova as que só parecem complexas por causa de símbolos e dígitos previsíveis.
Adicione orientação local específica
Execute as mesmas verificações determinísticas no navegador sem enviar a candidata a um serviço de vazamentos nem alegar que não há correspondência histórica.
Perguntas frequentes
Isso consulta um banco real de senhas vazadas?
Não. O algoritmo usa apenas regras locais fixas, e toda resposta informa que nenhum banco de vazamentos foi consultado.
Quais padrões de teclado são detectados?
São detectadas sequências de pelo menos quatro teclas consecutivas, nos dois sentidos, na fileira numérica QWERTY e nas três fileiras principais de letras.
Quais tipos de repetição são sinalizados?
Um caractere repetido pelo menos três vezes e blocos de texto de dois a oito caracteres repetidos imediatamente são sinalizados.
Um resultado baixo prova que minha senha é forte?
Não. Ele só indica que as famílias implementadas não foram encontradas; não mede entropia, exclusividade, referências pessoais nem exposição em vazamentos.
O que acontece quando a senha está vazia?
A solicitação falha com um erro de entrada inválida para que um valor ausente não seja interpretado como resultado limpo.
Quanto custa a verificação pela API?
Cada solicitação bem-sucedida à API custa US$ 0,002. A versão no navegador pode ser executada localmente sem chamar um serviço de vazamentos.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/security/password-breach-pattern-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"password":"P@ssw0rd123"}'const res = await fetch("https://api.kit.forhosting.com/security/password-breach-pattern-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"password": "P@ssw0rd123"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/password-breach-pattern-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"password": "P@ssw0rd123"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/password-breach-pattern-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"password":"P@ssw0rd123"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"password":"P@ssw0rd123"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/password-breach-pattern-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"password": "P@ssw0rd123"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.password_breach_pattern_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |