Verifica di bcrypt e argon2
bcrypt & argon2 Checker
Calcola l’hash di una password con bcrypt al costo che scegli e confronta una password con un hash bcrypt esistente. Riconosce argon2 ma non lo calcola.
Calcola l’hash di una password con bcrypt, oppure verifica una password contro un hash `$2a$`/`$2b$`/`$2y$` esistente. L’implementazione è il `$2b$` di OpenBSD, verificato sui vettori crypt_blowfish pubblicati da Openwall, e gira in un worker in questa scheda.
Elaborata solo in questa scheda; non viene trasmesso niente.
1024 round — il valore predefinito di sempre.
$2b$, verificato sui vettori di test pubblicati di Openwall crypt_blowfish e in esecuzione interamente in questa scheda. Contano solo i primi 72 byte di una password — è bcrypt che funziona così, non un difetto di qui. Gli hash $2x$ (prodotti da un bug di crypt_blowfish anteriore al 2011) vengono rifiutati, e argon2 non è implementato.Come si usa
Scegliere fra calcolo dell’hash e verifica
Il calcolo dell’hash ha bisogno di un costo; la verifica legge il costo dall’hash incollato, perché è conservato nella stringa.
Scegliere un costo che ci si può permettere
Ogni passo raddoppia il lavoro. 10 è stato per anni il valore predefinito, 12 è una scelta solida oggi, e 14 in un browser richiede qualche secondo ben visibile — che è proprio il punto: anche a chi attacca costa lo stesso tempo.
Leggere il verdetto
Corrisponde oppure no. Tutto avviene nella scheda, quindi un hash di produzione incollato qui non va da nessuna parte.
Domande frequenti
Perché argon2 viene rifiutato invece che supportato?
Perché un argon2 affidabile in un browser vorrebbe dire distribuire una build WebAssembly che questo progetto non può verificare riga per riga. Qui bcrypt è implementato in codice che si può leggere, controllato su vettori pubblicati. Rifiutare un hash argon2 è più onesto di una risposta dall’aria plausibile che esce da una scatola nera.
Perché la mia password lunga viene verificata contro l’hash sbagliato?
bcrypt legge soltanto i primi 72 byte. Due password che condividono i primi 72 byte per lui sono la stessa password: è bcrypt in sé, non questa implementazione. Conta per una passphrase, ed è una delle ragioni per cui si passa ad argon2.
Perché calcolare due volte l’hash della stessa password dà stringhe diverse?
Perché ogni esecuzione genera un salt nuovo da 16 byte, e il salt viaggia dentro l’hash. Entrambe le stringhe verificano la stessa password. Un hash di password uguale ogni volta è un hash di password senza salt, che è proprio la cosa per cui sono state costruite le rainbow table.
$2a$, $2b$ e $2y$ sono diversi?
Non per una password di 72 byte o meno, cioè per tutte. I prefissi registrano prima o dopo quale bug storico è stato prodotto un hash. `$2x$` è l’eccezione: segna gli hash prodotti da un bug di crypt_blowfish precedente al 2011, e qui vengono rifiutati.
Può ricevere da
Hash di un testo
Text Hash
Calcola MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC-32 di una stringa, con uscita in maiuscolo o in Base64.
Riconoscere il tipo di hash
Hash Identifier
Indovina quale algoritmo ha prodotto un hash guardandone lunghezza, insieme di caratteri e prefisso, in ordine di probabilità.
Generatore di .htpasswd
.htpasswd Generator
Crea voci di autenticazione di base per Apache o nginx con hash bcrypt, APR1 o SHA.
Formattatore e validatore JSON
JSON Formatter & Validator
Formatta, minifica e valida il JSON, indicando riga e colonna esatte di un errore di sintassi.
Dopo
Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.
Riconoscere il tipo di hash
Hash Identifier
Indovina quale algoritmo ha prodotto un hash guardandone lunghezza, insieme di caratteri e prefisso, in ordine di probabilità.
Hash di un testo
Text Hash
Calcola MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC-32 di una stringa, con uscita in maiuscolo o in Base64.
Generatore di .htpasswd
.htpasswd Generator
Crea voci di autenticazione di base per Apache o nginx con hash bcrypt, APR1 o SHA.
Misuratore di robustezza delle password
Password Strength Meter
Stima quanto tempo servirebbe per forzare una password, indicando gli schemi che la indeboliscono.
Codificatore e decodificatore Base64
Base64 Encoder & Decoder
Codifica e decodifica in Base64 e Base64URL testo o file, trattando correttamente l’UTF-8.
Da curl a codice
curl to Code
Converte un comando curl in fetch, axios, requests di Python, Go, PHP o PowerShell.