Derivação de chaves PBKDF2 e HKDF
Derive uma chave a partir de uma senha ou segredo com PBKDF2 ou HKDF, escolhendo o sal, o número de iterações ou o rótulo info, o hash e o tamanho da saída, e leia o resultado em hexadecimal ou base64, tudo no seu navegador.
Derivação de chaves PBKDF2 e HKDF — Estique uma senha até virar uma chave PBKDF2, ou expanda um segredo de alta entropia em subchaves nomeadas com HKDF, sem que nada saia da sua máquina. Escolha o hash, defina o sal e o número de iterações (PBKDF2) ou o rótulo info (HKDF), indique quantos bits de saída você precisa e copie a chave derivada em hexadecimal ou base64. Cada byte é calculado localmente com a Web Crypto API nativa (crypto.subtle.deriveBits), então sua senha e seu segredo nunca tocam um servidor.
O que é Derivação de chaves PBKDF2 e HKDF?
A Derivação de chaves PBKDF2 e HKDF é uma ferramenta gratuita no navegador que executa as duas funções de derivação de chave que os desenvolvedores mais usam. O PBKDF2 (Password-Based Key Derivation Function 2) desacelera a força bruta de propósito repetindo um HMAC muitos milhares de vezes, transformando uma senha humana mais um sal em uma chave de tamanho fixo. O HKDF (HMAC-based Key Derivation Function) recebe um segredo que já tem entropia suficiente e o expande em uma ou mais subchaves ligadas a um contexto usando um rótulo info, ideal para derivar chaves de criptografia e de autenticação separadas a partir de um único segredo mestre. Engenheiros de backend, revisores de segurança e qualquer pessoa que escreva código de login ou criptografia a usam para testar vetores, reproduzir a derivação de um servidor ou gerar chaves para uma tarefa pontual. Use o alternador PBKDF2/HKDF para trocar de algoritmo, escolha SHA-256, SHA-384, SHA-512 ou SHA-1, defina o tamanho da saída em bits e leia o resultado em hexadecimal ou base64.
Como usar Derivação de chaves PBKDF2 e HKDF
- Escolha PBKDF2 ou HKDF com o alternador no topo, conforme a função que seu código ou vetor de teste usa.
- Digite ou cole sua senha (PBKDF2) ou segredo de alta entropia (HKDF) no campo Segredo e, em seguida, informe um sal.
- Para PBKDF2 defina o número de iterações; para HKDF defina o rótulo info opcional que liga a chave a um contexto.
- Escolha o hash (SHA-256, SHA-384, SHA-512 ou SHA-1) e o tamanho da saída em bits.
- Mude o alternador hexadecimal / base64 para a codificação que você precisa e copie a chave derivada com o botão de copiar.
Exemplos
PBKDF2 — chave de 256 bits a partir de uma senha
Entrada
Segredo: correct horse battery staple Sal: a1b2c3d4 Hash: SHA-256, Iterações: 100000, Bits: 256
Saída
uma string hexadecimal de 64 caracteres (32 bytes) reproduzível com a mesma senha, sal, hash e número de iterações
HKDF — subchave ligada ao contexto a partir de um segredo mestre
Entrada
Segredo: 9f8e7d6c…(chave mestra) Sal: session-2024 Info: aes-gcm-encryption Hash: SHA-256, Bits: 256
Saída
uma chave de 256 bits diferente da obtida com o mesmo segredo e Info: hmac-authentication, de modo que um mestre produz subchaves independentes
Saída mais curta em base64
Entrada
Bits: 128, codificação alterada para base64
Saída
uma string base64 de 24 caracteres que codifica os primeiros 16 bytes derivados
Perguntas frequentes
- Minha senha ou meu segredo é enviado para algum lugar?
- Não. O Segredo, o sal e o info permanecem no seu navegador. A chave é derivada localmente com a Web Crypto API (crypto.subtle.deriveBits), e nada é enviado nem armazenado em qualquer servidor, então a ferramenta funciona offline e seus dados nunca saem da página.
- Quando devo usar PBKDF2 em vez de HKDF?
- Use PBKDF2 para derivar uma chave a partir de uma senha humana de baixa entropia: seu número de iterações desacelera a força bruta. Use HKDF quando você já tem um segredo de alta entropia (uma chave mestra ou segredo compartilhado) e quer expandi-lo em uma ou mais subchaves separadas via rótulo info. O HKDF é rápido e não substitui o alongamento de senha do PBKDF2.
- Por que o tamanho da minha saída é arredondado?
- O deriveBits da Web Crypto trabalha em bytes inteiros, então o tamanho da saída em bits é arredondado para o múltiplo de 8 mais próximo. A estatística abaixo do resultado mostra os bits e bytes realmente produzidos.
- Quais hashes e algoritmos são suportados?
- Ambos os algoritmos funcionam com SHA-256, SHA-384, SHA-512 ou SHA-1, os hashes que a Web Crypto do navegador expõe para PBKDF2 e HKDF. Scrypt, Argon2 e bcrypt não são oferecidos porque os navegadores não os implementam de forma nativa.
- As mesmas entradas sempre dão a mesma chave?
- Sim. A derivação de chaves é determinística: o mesmo algoritmo, segredo, sal, hash, tamanho da saída e número de iterações (PBKDF2) ou info (HKDF) sempre produzem os mesmos bytes, e é por isso que você pode usá-la para reproduzir ou verificar uma chave que seu servidor derivou.
Ferramentas relacionadas
Criptografia de texto AES (AES-GCM + PBKDF2)
Criptografe e descriptografe texto com AES-256-GCM usando uma chave derivada de uma frase secreta (PBKDF2 SHA-256, sal aleatório), inteiramente no seu navegador e sem envios.
Hash Argon2 e scrypt
Faça o hash de uma senha com Argon2id ou scrypt e verifique um hash Argon2 em relação a uma senha, inteiramente no seu navegador.
Gerador e Verificador de Hash Bcrypt
Gere um hash de senha bcrypt a partir de texto simples com o fator de custo que escolher, ou verifique uma senha em relação a um hash bcrypt existente, tudo no seu navegador.
Gerador de mnemônico BIP39
Gere uma frase de recuperação BIP39 aleatória de 12 a 24 palavras em vários idiomas, ou converta um mnemônico existente de volta em sua entropia bruta, tudo no seu navegador.