Tworzę dostawcę usług rejestracji użytkownika, a także używam funkcji password_hash w celu zaszyfrowania podanego hasła użytkownika. Poniżej znajduje się fragment kodu używany w celu stworzenia zaszyfrowany ciąg:Problem PHP: funkcja password_hash nie jest w stanie wygenerować soli
public function generateHash($string)
{
return password_hash($string, PASSWORD_BCRYPT);
}
Jak zrozumiałem z instrukcji PHP, nie powinny generować naszą sól i zamiast pozwolić funkcja password_hash zająć się, że dla poprawy bezpieczeństwa. Jednak przy próbie utworzenia nowego użytkownika pojawia się poniżej ostrzeżenie:
Ostrzeżenie: password_hash(): Nie można wygenerować sól
Aplikacja tworzy użytkownika, ale ze względu na powyższym numerze hash zostanie wygenerowany i hasło zawsze będzie puste w bazie
używam wersji PHP 7.0.4/Zend Server w moim środowisku programistycznym
To byłoby bardzo mile widziane, jeśli ktoś może mi punkt w prawo kierunek
Jakim systemem operacyjnym jesteś? – jszobody
Puste hasło nadal będzie zwracać hasz. –
Od wyszukiwania jedynym miejscem w źródle PHP, w którym generowany jest ten komunikat o błędzie, jest [nie generowanie losowych bajtów] (https://github.com/php/php-src/blob/c72282a13b12b7e572469eba7a7ce593d900a8a2/ext/standard/password. C# L125-L126). Patrząc na [random_bytes] (http://php.net/random_bytes) można zobaczyć różne sposoby, w jakie PHP będzie próbowało generować losowość. Zacznę rozwiązywać problemy. – jszobody