Sto generando un token da utilizzare quando si fa clic sul collegamento in un'e-mail di verifica. Ho intenzione di utilizzare uniqid () ma l'output sarà prevedibile permettendo a un utente malintenzionato di aggirare l'e-mail di conferma mail. La mia soluzione è di cancellarlo. Ma non è ancora abbastanza, perché se viene scoperto l'hash che sto usando, sarà comunque prevedibile. La soluzione è salarla. Che non sono sicuro di come fare perché se uso una funzione per dare sale variabile (ad esempio in pseudocode hash(uniqid()+time())
), allora l'unicità dell'hash non è più garantita? Dovrei usare un hash costante e sarebbe abbastanza buono (ad esempio hash(uniqid()+asd741)
)
Penso che tutte le risposte perdano un punto importante. Deve essere unico. Cosa succede se openssl_random_pseudo_bytes()
procura lo stesso numero due volte? Quindi un utente non sarebbe in grado di attivare il suo account. La contro tesi della gente è improbabile che produca lo stesso numero due volte? Ecco perché stavo considerando uniqid()
perché l'output è unico.
Credo che potrei usarli entrambi e aggiungerli insieme.