Entropia de senhas: bits e tempo para quebra
Esta calculadora transforma a configuração de um gerador de senhas em uma estimativa teórica transparente.
Executar grátis
Informe o comprimento, os conjuntos disponíveis em cada posição e a quantidade de tentativas por segundo do atacante. O resultado apresenta o tamanho do conjunto, a entropia em bits, a média de tentativas e a ordem de grandeza do tempo para quebra. Ela se destina a segredos gerados de modo uniforme e aleatório, e não a palavras memorizáveis, credenciais reutilizadas ou padrões humanos previsíveis.
O significado da medida de entropia
A calculadora presume que cada posição seja escolhida de forma independente e uniforme em um conjunto combinado. Se um gerador usa 26 letras minúsculas e cria doze caracteres, há 26 elevado à décima segunda potência de sequências possíveis. A entropia é o logaritmo de base dois desse espaço e representa uma quantidade equivalente de decisões binárias. Adicionar tipos de caracteres aumenta o conjunto; adicionar comprimento multiplica novamente as possibilidades. O resultado descreve o processo de geração, e não apenas a aparência da senha pronta. Uma sequência criada por uma pessoa pode conter maiúscula, número e símbolo e ainda seguir um padrão muito previsível. Use esta estimativa quando os conjuntos declarados realmente descrevem uma seleção aleatória em cada posição. Para escolhas humanas, uma análise sensível a dicionários é mais adequada. Uma senha vazada ou reutilizada deve ser trocada independentemente dos bits calculados.
Como interpretar o tempo para quebra
O tempo deriva do mesmo espaço de busca e da taxa de tentativas por segundo informada. Em uma busca exaustiva, um alvo uniforme é encontrado, em média, após metade das possibilidades; por isso o cálculo divide o espaço por dois e depois pela taxa. A resposta traz notação científica e uma frase aproximada, como dezenas de anos ou centenas de milhões de anos. Isso é uma ordem de grandeza, não um prazo garantido. A taxa real depende do armazenamento, do algoritmo de hash, do hardware, do orçamento e de o ataque ocorrer online ou sobre um banco roubado. Serviços online costumam limitar tentativas, enquanto um hash rápido pode permitir taxas enormes offline. Compare cenários alterando a taxa e registre sempre essa premissa ao divulgar o resultado.
Como escolher conjuntos sem contagem duplicada
Selecione minúsculas, maiúsculas, dígitos ou símbolos quando esses conjuntos corresponderem ao gerador. Os tamanhos são 26, 26, 10 e 32, e nomes repetidos contam apenas uma vez. Para outro alfabeto, selecione somente o conjunto personalizado e informe o número exato de caracteres distintos disponíveis em cada posição. Essa separação evita sobreposição, como contar minúsculas no conjunto padrão e novamente no personalizado. O cálculo pressupõe que todos os caracteres declarados possam ocorrer em qualquer posição com igual probabilidade. Regras que exigem exatamente um dígito, proíbem símbolo no início ou atribuem pesos diferentes criam outro espaço de busca. A ferramenta não recebe nem examina a senha, permitindo documentar uma política sem revelar o segredo. Cada solicitação bem-sucedida da API custa US$ 0,002. Guarde comprimento, definição do conjunto e taxa junto ao resultado para que outra pessoa possa reproduzi-lo.
Casos de uso
Revisar uma política de senhas aleatórias
Compare comprimentos e conjuntos permitidos com uma taxa explícita antes de definir o gerador.
Documentar segredos de serviços
Registre a força teórica de credenciais geradas por máquina sem enviar as credenciais.
Comparar ataques offline
Execute a mesma configuração em taxas diferentes para mostrar o impacto do sistema de hash.
Perguntas frequentes
Qual fórmula a calculadora usa?
A entropia é o comprimento multiplicado pelo logaritmo de base dois do tamanho do conjunto. A média de tentativas é metade do espaço.
Ela examina uma senha real?
Não. Ela recebe comprimento e conjuntos, portanto você não precisa fornecer o segredo.
Posso avaliar uma senha escolhida por uma pessoa?
Não de forma confiável. Escolhas humanas contêm palavras e padrões; use uma análise baseada em dicionários.
Por que usar metade do espaço?
Em uma busca exaustiva por um alvo uniforme, o ponto esperado de descoberta fica no meio das possibilidades.
Quanto custa uma solicitação da API?
Uma solicitação bem-sucedida custa US$ 0,002. O navegador pode executar localmente a mesma aritmética determinística.
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-entropy-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"length":16,"character_sets":["lowercase","uppercase","digits","symbols"]}'const res = await fetch("https://api.kit.forhosting.com/security/password-entropy-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"length": 16,
"character_sets": [
"lowercase",
"uppercase",
"digits",
"symbols"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/password-entropy-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"length": 16,
"character_sets": [
"lowercase",
"uppercase",
"digits",
"symbols"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/password-entropy-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"length":16,"character_sets":["lowercase","uppercase","digits","symbols"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"length":16,"character_sets":["lowercase","uppercase","digits","symbols"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/password-entropy-estimate", 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
{
"length": 16,
"character_sets": [
"lowercase",
"uppercase",
"digits",
"symbols"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.password_entropy_estimate",
"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. |