In considerazione della posta @jszbody, si dovrebbe aggiornare anche il campo della password per dire che si desidera schema che si sta utilizzando.
Dove si dispone di un hash MD5 ora, si potrebbe avere solo "BAC232BC1334DE" o qualcosa del genere.
Quando si passa a SHA o qualsiasi altra cosa, è necessario cambiarlo in: "SHA: YOURSHAHASHHERE".
Perché non è possibile modificare nessuna delle password esistenti in questo momento. Ciò renderà più compatibile con le versioni precedenti, dal momento che ora è possibile supportare entrambi i regimi.
Poiché si ottiene la password originale durante l'accesso, è possibile aggiornare dinamicamente le password in posizione mentre le persone accedono.
Ottieni il record utente, controlla la password. Se non esiste uno schema, utilizzare MD5 e confrontare le password. Se sono corretti (cioè possono accedere), è possibile aggiornare la loro vecchia password MD5 alla nuova password SHA.
Inoltre, sembra che tu non stia salando le tue password. Devi salare le tue password in modo che quando Mary Sue utilizza "ilovekittens" per la sua password e Big Jake Mahoney utilizzi "ilovekittens" come sua password, non si ottiene lo stesso comportamento con password identiche.
È possibile memorizzare il sale anche nella password: "SHA: RANDOMSALTCHARACTERS: YOURSALTEDHASHHERE".
La salatura è altamente raccomandata. Senza regole, praticamente non importa molto quale schema usi.
fonte
2013-05-01 23:40:43
1. Utilizzare una libreria di autenticazione in uscita 2. Utilizzare un'autenticazione esistente .. ci sono più problemi che sono battuti alla morte in SO - cercare ["php hash password"] (http://stackoverflow.com/search? q = php + hash + password) e buona lettura: SQL injection; scelta hash inappropriata (anche SHA-1 non è appropriato); senza sale (nonostante ciò che è richiesto); altre questioni altrove ..? – user2246674
Ive ha letto che l'MD5 è orribile, Sha256 e il sale sono stati consigliati, ma darò un'occhiata a quello che hai pubblicato e fai qualche ricerca. grazie per il punto nella giusta direzione, signore. –
MD5 non deve essere utilizzato per l'hashing della password; ma lo stesso identico motivo per cui non si applica a SHA-1. [L'hashing MD5 non può * essere * fattibile "senza fruscii"] (http://stackoverflow.com/a/13446272/2246674) - tuttavia, * sia MD5 che SHA-1 sono vulnerabili alla forzatura bruta perché sono entrambi molto veloci e può essere parallelizzato *. L'uso di sale può prevenire gli attacchi della tabella arcobaleno (e non usare salt è una password hash senza valore a causa degli attacchi rainbow table), ma non può prevenire gli attacchi brute force, motivo per cui SHA-1 non è * più adatto * di MD5 per questa particolare attività. – user2246674