Sto creando un provider di servizi di registrazione utente e in questo sto utilizzando la funzione password_hash per poter hash la password dell'utente fornito. Qui di seguito è la porzione di codice utilizzato per creare la stringa hash:PHP Problema: la funzione password_hash non è in grado di generare un salt
public function generateHash($string)
{
return password_hash($string, PASSWORD_BCRYPT);
}
Come ho capito dal manuale di PHP, non dobbiamo generare il nostro sale e invece lasciare che la funzione di password_hash prendersi cura di questo per una maggiore sicurezza. Tuttavia, quando si tenta di creare un nuovo utente ottengo l'avvertimento di seguito:
Attenzione: password_hash(): Impossibile generare il sale
L'applicazione crea l'utente, ma a causa del problema di cui sopra non hash verrà generato e la password sarà sempre vuoto nel database
sto usando la versione di PHP 7.0.4/Zend Server nel mio ambiente di sviluppo
sarebbe molto apprezzato se qualcuno mi può puntare nella giustadirection
Su quale sistema operativo ci si trova? – jszobody
Una password vuota restituirà ancora un hash. –
Dalla ricerca, l'unica posizione nella sorgente PHP in cui viene generato questo messaggio di errore è [non riuscendo a generare byte casuali] (https://github.com/php/php-src/blob/c72282a13b12b7e572469eba7a7ce593d900a8a2/ext/standard/password. C# L125-L126). Guardando [random_bytes] (http://php.net/random_bytes) puoi vedere i vari modi in cui PHP tenterà di generare casualità. Comincerei a risolvere i problemi con quelli. – jszobody