Per una funzione di accesso, dovresti mirare a fare in modo che il processo di hashing richieda circa un secondo.
Se prendi questo post come guida, 1170ms richiede circa 8.192 iterazioni di bcrypt (costo di 13) .
Questo significa che le tue iterazioni aggiungono circa 13 bit di entropia efficace.
Se hai solo 31 bit di entropia in un valore hash segreto, allora questa configurazione di bcrypt ti darà 44 bit di entropia.
Come guida, 47 bit di entropia richiederebbero un massimo di 0,223 ore per rompere per numero di telefono (supponendo 350 miliardi supposizioni / Sec). Anche se l'hacker non aveva questo tipo di risorse e ha indovinato a 2 miliardi di ipotesi / Sec utilizzando un unico PC domestico, ci sarebbero voluti 39 ore per numero di telefono da decifrare.
Quindi, per rispondere alla tua domanda, non ha senso quando hai bisogno di aumentare il tempo di hashing a un livello inaccettabile (un costo di 16 per aggiungere 16 bit sarebbe superiore a 9 secondi, ciò che definiresti come dannoso alla tua applicazione), o che il tempo di cracking per segreto è inferiore al tuo obiettivo per la sensibilità delle informazioni che sta proteggendo e le risorse del tuo presunto aggressore.
Se è accettabile che ogni numero di telefono impieghi 39 ore per attaccare in modo casuale, quindi non c'è alcun problema con bcrypt al costo di 13. Questo presuppone che stiano usando bcrypt con detto costo e non semplicemente memorizzando SHA1 (sale + numero).