PBKDF2 e bcrypt sono configurati con un "conteggio di iterazione", il che significa che possono essere eseguiti nel modo più lento possibile. Pertanto, non può esserci una tabella che mostri quanto velocemente vadano. Quello che devi fare, invece, è decidere quanto tempo assegni alla funzione (ad esempio, vuoi che impieghi 0,05 secondi sul tuo server) e quindi impostare il numero di iterazioni di conseguenza. Questo dipende molto dalle capacità di calcolo del tuo server, quindi questa è una questione di misura sull'hardware di destinazione.
Per le altre funzioni, puoi trovare molti dati su questo sito per le misure di rendimento di molti funzioni hash su molte piattaforme (sebbene tutte queste piattaforme tendano ad essere server, sistemi desktop o, nel peggiore dei casi, smartphone), i sistemi embedded più piccoli non sono coperti. L'immagine di alto livello è:
- Le prestazioni dipendono molto dall'hardware.
- Le prestazioni dipendono molto dall'implementazione .
- Tutte le funzioni di hash attualmente definite sono troppo veloci per essere adeguate per l'hashing delle password da sole; hai bisogno di una sorta di rallentamento attraverso migliaia o milioni di iterazioni.
Mentre PBKDF2 aggiunge le iterazioni correttamente, può ancora essere reso molto più veloce nel contesto di un attacco parallelo, usando una GPU; quindi, potresti preferire usare una funzione che è ostile alla GPU e, in questo momento, questo significa bcrypt (scrypt è un buon candidato, quando diventa abbastanza vecchio per essere considerato attendibile). Vedi questa risposta per i dettagli.