Derivazione di chiavi PBKDF2 e HKDF

Deriva una chiave da una password o da un segreto con PBKDF2 o HKDF, scegliendo il sale, il numero di iterazioni o l’etichetta info, l’hash e la lunghezza di output, e leggila in esadecimale o base64, interamente nel tuo browser.

Caricamento strumento…

Derivazione di chiavi PBKDF2 e HKDFAllunga una password in una chiave PBKDF2, oppure espandi un segreto ad alta entropia in sottochiavi con nome tramite HKDF, senza che nulla esca dal tuo dispositivo. Scegli l’hash, imposta il sale e il numero di iterazioni (PBKDF2) o l’etichetta info (HKDF), indica quanti bit di output ti servono e copia la chiave derivata in esadecimale o base64. Ogni byte viene calcolato localmente con la Web Crypto API nativa (crypto.subtle.deriveBits), così la tua password e il tuo segreto non toccano mai un server.

Cos'è Derivazione di chiavi PBKDF2 e HKDF?

La Derivazione di chiavi PBKDF2 e HKDF è uno strumento gratuito nel browser che esegue le due funzioni di derivazione di chiavi più usate dagli sviluppatori. PBKDF2 (Password-Based Key Derivation Function 2) rallenta di proposito la forza bruta ripetendo un HMAC molte migliaia di volte, trasformando una password umana più un sale in una chiave di lunghezza fissa. HKDF (HMAC-based Key Derivation Function) prende un segreto che ha già abbastanza entropia e lo espande in una o più sottochiavi legate a un contesto usando un’etichetta info, ideale per derivare chiavi di cifratura e di autenticazione separate da un unico segreto master. Ingegneri backend, revisori di sicurezza e chiunque scriva codice di login o cifratura la usano per testare vettori, riprodurre la derivazione di un server o generare chiavi per un’attività occasionale. Usa l’interruttore PBKDF2/HKDF per cambiare algoritmo, scegli SHA-256, SHA-384, SHA-512 o SHA-1, imposta la lunghezza di output in bit e leggi il risultato in esadecimale o base64.

Come usare Derivazione di chiavi PBKDF2 e HKDF

  1. Scegli PBKDF2 o HKDF con l’interruttore in alto, in base alla funzione usata dal tuo codice o dal tuo vettore di test.
  2. Digita o incolla la tua password (PBKDF2) o il tuo segreto ad alta entropia (HKDF) nel campo Segreto, poi inserisci un sale.
  3. Per PBKDF2 imposta il numero di iterazioni; per HKDF imposta l’etichetta info facoltativa che lega la chiave a un contesto.
  4. Scegli l’hash (SHA-256, SHA-384, SHA-512 o SHA-1) e la lunghezza di output in bit.
  5. Sposta l’interruttore esadecimale / base64 sulla codifica che ti serve e copia la chiave derivata con il pulsante di copia.

Esempi

PBKDF2 — chiave da 256 bit da una password

Input

Segreto: correct horse battery staple
Sale: a1b2c3d4
Hash: SHA-256, Iterazioni: 100000, Bit: 256

Output

una stringa esadecimale di 64 caratteri (32 byte) riproducibile con la stessa password, sale, hash e numero di iterazioni

HKDF — sottochiave legata al contesto da un segreto master

Input

Segreto: 9f8e7d6c…(chiave master)
Sale: session-2024
Info: aes-gcm-encryption
Hash: SHA-256, Bit: 256

Output

una chiave da 256 bit diversa da quella ottenuta con lo stesso segreto e Info: hmac-authentication, così un master produce sottochiavi indipendenti

Output più corto in base64

Input

Bit: 128, codifica passata a base64

Output

una stringa base64 di 24 caratteri che codifica i primi 16 byte derivati

Domande frequenti

La mia password o il mio segreto vengono inviati da qualche parte?
No. Il Segreto, il sale e l’info restano nel tuo browser. La chiave viene derivata localmente con la Web Crypto API (crypto.subtle.deriveBits) e nulla viene caricato o memorizzato su alcun server, quindi lo strumento funziona offline e i tuoi dati non lasciano mai la pagina.
Quando usare PBKDF2 rispetto a HKDF?
Usa PBKDF2 per derivare una chiave da una password umana a bassa entropia: il suo numero di iterazioni rallenta la forza bruta. Usa HKDF quando hai già un segreto ad alta entropia (una chiave master o un segreto condiviso) e vuoi espanderlo in una o più sottochiavi separate tramite l’etichetta info. HKDF è veloce e non sostituisce lo stretching della password di PBKDF2.
Perché la mia lunghezza di output viene arrotondata?
Il deriveBits di Web Crypto lavora in byte interi, quindi la lunghezza di output in bit viene arrotondata al multiplo di 8 più vicino. La statistica sotto il risultato mostra i bit e i byte effettivamente prodotti.
Quali hash e algoritmi sono supportati?
Entrambi gli algoritmi funzionano con SHA-256, SHA-384, SHA-512 o SHA-1, gli hash che la Web Crypto del browser espone per PBKDF2 e HKDF. Scrypt, Argon2 e bcrypt non sono offerti perché i browser non li implementano in modo nativo.
Gli stessi input danno sempre la stessa chiave?
Sì. La derivazione di chiavi è deterministica: lo stesso algoritmo, segreto, sale, hash, lunghezza di output e numero di iterazioni (PBKDF2) o info (HKDF) producono sempre gli stessi byte, ed è per questo che puoi usarla per riprodurre o verificare una chiave derivata dal tuo server.

Strumenti correlati