Ir para o conteúdo principal
Segurança e privacidade

PBKDF2: hash e verificação de palavra-passe

Calcule um hash PBKDF2 com sal aleatório, SHA-256 ou SHA-512 e o número de iterações recomendado pela OWASP, no formato pbkdf2-sha256$…, e verifique uma palavra-passe face a ele. Processamento local.

  • Área de transferência

Integrar este widget

Personalize o resultado, verifique a pré-visualização e copie o código.

Pré-visualização

Tipo de código de integração

Código a copiar

Responsivo e redimensionado automaticamente pela Bethemesh.

A OWASP recomenda 600 000 iterações para SHA-256 e 210 000 para SHA-512: quanto mais, mais custa cada tentativa de um atacante.

Esta ferramenta foi útil?

Como funciona esta ferramenta?

Esta ferramenta deriva um hash PBKDF2 de uma palavra-passe com um sal aleatório e o número de iterações recomendado, e verifica uma palavra-passe face a um valor já codificado. Destina-se a programadores que implementam ou depuram o armazenamento de palavras-passe, preparam uma conta de teste ou querem compreender o efeito do sal e das iterações.

O PBKDF2, definido na RFC 8018 (PKCS #5 v2.1), aplica uma função HMAC à palavra-passe e ao sal e volta a passar o resultado pelo HMAC centenas de milhares de vezes: assim, cada tentativa de um atacante custa tanto como um início de sessão legítimo. A ferramenta propõe HMAC-SHA-256 com 600 000 iterações por omissão e HMAC-SHA-512 com 210 000, os mínimos da OWASP Password Storage Cheat Sheet. O sal aleatório (de 8 a 128 bytes, 16 por omissão) torna cada hash único mesmo que dois utilizadores tenham a mesma palavra-passe, o que neutraliza as tabelas arco-íris. O comprimento da chave derivada vai de 16 a 128 bytes, 32 por omissão; como referência, o PBKDF2-HMAC-SHA-256 de «password» com o sal «salt», 1 iteração e 32 bytes dá 120fb6cffcf8b32c43e7225256c4f837a86548c92ccc35480805987cb70be17b.

O resultado é codificado numa linha: pbkdf2-sha256$600000$<sal>$<hash>, com o sal e o hash em Base64URL. Esta cadeia contém tudo o que é necessário para verificar mais tarde uma palavra-passe: algoritmo, iterações, sal e resumo esperado. No modo de verificação, a ferramenta lê estes parâmetros, volta a calcular a derivação com a palavra-passe introduzida e compara os dois resumos em tempo constante, para que a duração não revele em que byte divergem. O cálculo usa a API Web Crypto (deriveBits), pelo que a palavra-passe nunca sai do seu dispositivo.

Como usar esta ferramenta

  1. Introduza a palavra-passe e os parâmetros

    Escreva a palavra-passe, escolha SHA-256 ou SHA-512 e ajuste, se necessário, o tamanho do sal, o número de iterações e o comprimento da chave.

  2. Derive o hash

    A ferramenta gera um sal aleatório, calcula o PBKDF2 e apresenta o valor codificado pbkdf2-sha256$iterações$sal$hash, pronto a copiar.

  3. Verifique uma palavra-passe

    Cole um valor codificado existente e a palavra-passe a testar: o resultado indica se corresponde, com o algoritmo e as iterações lidos do valor.

Casos de uso

Criar o hash de uma conta de administrador de teste

Gere um valor pbkdf2-sha256$… para inserir um utilizador diretamente numa base de dados de desenvolvimento ou num ficheiro de seed, sem escrever qualquer script.

Depurar um início de sessão que falha

Cole o hash guardado na base de dados e a palavra-passe esperada: a ferramenta indica se correspondem, para saber se o problema está na palavra-passe ou no código de verificação.

Medir o custo das iterações

Compare o tempo de cálculo com 210 000 ou 600 000 iterações na sua máquina para escolher uma configuração confortável no início de sessão que continue a travar os ataques offline.

Dicas e boas práticas

  • Não desça abaixo das iterações recomendadas para poupar alguns milissegundos: 600 000 com SHA-256 e 210 000 com SHA-512 são mínimos, a aumentar regularmente à medida que o hardware evolui.
  • Não vale a pena ultrapassar 32 bytes de chave com SHA-256 ou 64 com SHA-512: acima disso, o PBKDF2 calcula um segundo bloco completo, o que duplica o seu custo sem abrandar um atacante, a quem basta o primeiro bloco para testar uma palavra-passe.
  • O formato pbkdf2-sha256$… assemelha-se aos do Django, passlib ou Werkzeug, mas não é idêntico: os separadores e a codificação do sal e do hash diferem, pelo que deve verificar o formato esperado pela sua biblioteca antes de importar um valor.

Perguntas frequentes

O PBKDF2 continua seguro em 2026?

Sim, desde que utilize um número elevado de iterações e um sal único. O seu ponto fraco é não consumir memória, o que o torna mais fácil de acelerar em GPU do que o Argon2id ou o scrypt. Por isso a OWASP recomenda o Argon2id como primeira escolha e o PBKDF2 sobretudo quando é exigida conformidade FIPS-140.

Qual é a diferença entre PBKDF2, bcrypt e Argon2?

As três são funções lentas concebidas para palavras-passe. O PBKDF2 ajusta apenas o tempo de cálculo; o bcrypt acrescenta alguma memória mas trunca as palavras-passe a 72 bytes; o Argon2id, vencedor da Password Hashing Competition, ajusta o tempo e a memória. A vantagem do PBKDF2 é estar disponível em todo o lado, incluindo na Web Crypto e nos módulos validados FIPS.

Quantas iterações de PBKDF2 devo usar?

A OWASP Password Storage Cheat Sheet recomenda pelo menos 600 000 iterações para PBKDF2-HMAC-SHA256 e 210 000 para PBKDF2-HMAC-SHA512. O NIST SP 800-63B pede simplesmente um custo tão elevado quanto o desempenho do servidor permita. Na prática, aponte para cerca de 100 ms de cálculo por início de sessão no seu servidor.

O sal tem de ser secreto?

Não, o sal é guardado em claro junto do hash, que é exatamente o que faz o valor pbkdf2-sha256$… A sua função é ser único e aleatório para cada palavra-passe, para impedir tabelas pré-calculadas e ocultar que dois utilizadores partilham a mesma palavra-passe. Um segredo adicional guardado fora da base de dados, chamado pimenta, é uma proteção distinta e opcional.

É possível recuperar a palavra-passe a partir de um hash PBKDF2?

Não, o PBKDF2 é unidirecional: um atacante só pode adivinhar palavras-passe e voltar a calcular a derivação para cada uma. As iterações tornam cada tentativa dispendiosa, mas uma palavra-passe comum será encontrada rapidamente na mesma. A robustez final depende, por isso, também da qualidade da palavra-passe.

Posso introduzir uma palavra-passe real nesta ferramenta?

O cálculo é feito apenas no seu navegador com a Web Crypto: nem a palavra-passe nem o hash são enviados. Por precaução, prefira ainda assim uma palavra-passe de teste quando gerar exemplos ou partilhar uma captura de ecrã.

Ferramentas relacionadas

Ferramentas semelhantes ou complementares a esta.

Funciona bem com

Gere palavras-passe fortes e aleatórias de 8 a 128 caracteres, com a entropia indicada.

Segurança e privacidadeEm destaqueUtilizar esta ferramenta

Teste a força de uma palavra-passe: entropia, padrões fracos, tempo estimado para a quebrar e conselhos.

Segurança e privacidadeEm destaqueUtilizar esta ferramenta

Verifique se dois hashes ou somas de verificação coincidem, independentemente de maiúsculas, espaços ou dois-pontos.

Segurança e privacidadeUtilizar esta ferramenta