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.

Carregando ferramenta…

Derivação de chaves PBKDF2 e HKDFEstique 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

  1. Escolha PBKDF2 ou HKDF com o alternador no topo, conforme a função que seu código ou vetor de teste usa.
  2. Digite ou cole sua senha (PBKDF2) ou segredo de alta entropia (HKDF) no campo Segredo e, em seguida, informe um sal.
  3. Para PBKDF2 defina o número de iterações; para HKDF defina o rótulo info opcional que liga a chave a um contexto.
  4. Escolha o hash (SHA-256, SHA-384, SHA-512 ou SHA-1) e o tamanho da saída em bits.
  5. 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