Sto usando pbkdf2 in node.js per le password di hashing.crypto.pbkdf2 è asincrono, come lo tratto come sincrono?
Il mio problema è che sto rispondendo a una richiesta di autenticazione e sono nel mezzo dell'autenticazione se le credenziali passate sono corrette. Presumo che pbkdf2 sia asincrono in quanto potrebbe richiedere molto tempo (a seconda della dimensione delle iterazioni). Tuttavia, spostare la restante logica di autenticazione in un metodo separato per utilizzare il callback sembra un po 'brutto.
Esiste un approccio migliore rispetto all'utilizzo di un timer o al lancio di tutta la logica di autenticazione consecutiva in una funzione separata? So che la maggior parte dirà che dovrei usare il callback, ma nel mio caso d'uso questo non ha senso. Non riesco a continuare l'autenticazione fino a quando non ho applicato pbkdf2 alla password passata.
Ho ragione nel presumere che il bcrypt sia basato su blowfish (come per il collegamento wikipedia dal progetto node.bcrypt.js)? Stavo usando pbkdf2 con un sale più grande di 128 bit e con 10000 iterazioni, che afaict è approvato dal NIST, mentre il blowfish bcrypt non lo è (vedi wikipedia artical). Sono solo curioso di sapere che bcrypt è più sicuro. Per i miei scopi è molto probabile. non così importante, ma mi piacerebbe usare l'approccio più sicuro. – Metalskin
@Metalskin, ho studiato un po 'di più. 'Bcrypt' è più forte su pathipres più brevi, ma inizia a perdere' pbkdf2' su pathfrases più lunghi di 55 caratteri. Ma entrambi sono abbastanza sicuri, quindi non c'è una vera differenza. Vedi [questa risposta] (http://stackoverflow.com/questions/4433216/password-encryption-pbkdf-using-sha512-x-1000-vs-bcrypt) per maggiori informazioni. –
Grazie a questo link è stato davvero utile, non penso che avrò più di 55 caratteri quindi dovrebbe essere ok usare bcrypt. Sembra che lo scrypt sia migliore ma non sono riuscito a trovare alcun progetto attivo per node.js. – Metalskin