PBKDF2, scrypt e bcrypt sono tutti configurabili ; possono essere fatti il più lentamente possibile. Il punto limite non è il computer, ma la pazienza dell'utente.
Ad esempio, supponiamo che l'utente diventi irato se l'elaborazione della password (ad es. per sbloccare un file di archivio) richiede più di 6 secondi. Se si utilizza solo bcrypt, è possibile eseguire l'ottimizzazione in modo che siano necessari 6 secondi sulla macchina. Ma se usi PBKDF2 e scrypt e bcrypt in successione, allora dovranno integrarsi nel budget di 6 secondi, il che significa che, in pratica, li configurerai con conteggi di iterazioni più bassi, ad es. 2 secondi ciascuno. Da questo punto di vista, l'utilizzo di tre algoritmi in successione non è migliore di uno; che importa è il tempo totale .
Il punto di questa lentezza configurabile è che rende le cose più difficili per l'attaccante; vuoi scegliere un algoritmo che induca ogni password a indovinare il più costoso possibile per l'attaccante. L'utente malintenzionato non ha necessariamente lo stesso hardware dell'utente (ad esempio, probabilmente cercherà di utilizzare una GPU), quindi ogni algoritmo potrebbe essere più o meno "buono". L'attaccante può sempre comprare un PC come il tuo, e quindi fare in 6 secondi quello che fai in 6 secondi; tuttavia, l'utente malintenzionato può talvolta acquistare un hardware più specializzato che sarà migliore del proprio per quella specifica attività. Questo è in particolare il caso di PBKDF2 e GPU. Come difensore, vuoi evitare una situazione del genere. Pertanto, alcuni algoritmi sono migliori di altri e, nella triade PBKDF2 / bcrypt / scrypt, si può presumere che un algoritmo sia "più strong" nel senso spiegato sopra.
Quindi, usando solo quell'algoritmo, da solo e con la sua configurazione regolata in modo tale da impiegare tutto il tempo che si può tollerare, sarà ottimale. Per definizione, l'uso di tutti e tre gli algoritmi in successione non può essere tanto strong quanto l'algoritmo unico. In pratica, questo significa che dovresti usare bcrypt: il budget che spendi su PBKDF2 è sprecato sicurezza, poiché, per lo stesso uso della CPU sulla tua macchina, bcrypt avrebbe fornito più resistenza (vedi questo per alcuni dettagli su bcrypt vs scrypt e che per ulteriori dettagli sull'hash della password in generale).