Espansione e utilizzo del codice di generazione di sale per un sistema di accesso PHP
-
16-12-2019 - |
Domanda
Sto lavorando su un sistema di accesso PHP / MySQL per un WebProject.Dopo aver visto, così e molti articoli sul web Ive inventa un quadro di base e ha iniziato a scrivere qualche codice per questo.Tuttavia, è arrivato a un po 'di un impasse nella crittografia della password.
Dopo una notte che vale la pena di leggere Ive ha scoperto che:
- .
- Io dovrebbe la password degli utenti con almeno SHA1 o SHA2
- Dovrei anche usare un sale generato a caso (questo è ciò con cui ho bisogno di aiuto) e ad aggiungerlo alla password prima di crittografare it
- La password hashed e il sale generato a caso devono essere memorizzati nel database e quindi interrogati e combinati / crittografati quindi controllati contro la password hashed degli utenti.
Il mio problema è in arrivo a generare casualmente il sale,
Soluzione
Possibilità che posso pensare:
- .
-
Usa mt_rand () in un ciclo per scegliere un codice ASCII, ottenere il personaggio corrispondente con < A href="http://php.net/chr%28%29" rel="nofollow"> chr () e concatenato a sale.
Ciò consente di creare sali con qualsiasi lunghezza.
-
Definire una stringa con caratteri disponibili, utilizzare mt_rand () in un ciclo per scegliere posizioni casuali da Estrarre il personaggio nella posizione selezionata con substr () o mb_substr () e Concatena al sale.
Ciò consente di creare sali con un set di caratteri scelto e una lunghezza.
-
Utilizzare una funzione integrata che genera una stringa casuale (ad es. UNIQID () ) e facoltativamente hash .
Questo è veloce e semplice.
Normalmente uso la seconda opzione.
Altri suggerimenti
UNIQID ()?