Poprawne użycie crypt () z SHA512 w PHP

Wszystkie przykłady online pokazują użycie krypty w następujący sposób:

$pass = crypt('something','Odkryłem, że niektóre z nich są przydatne:rounds=5000$anexamplestringforsalt

Ale wszyscy mówią, że nie należy definiować rund ani soli.

Jak więc z niego korzystać?

Mam też problem: kiedy uruchamiam powyższy kod, uruchamia on tylko 50 rund zamiast 5000 rund, tak jakby system go zatrzymywał.

Każda pomoc zostanie bardzo doceniona.

//- Rozwiązanie -//

Odkryłem, że niektóre z nich są przydatne:

Do generowania soli:

 $salt = substr(str_shuffle("./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345‌​6789"), 0, 8); 

lub

jeśli masz serwer linux, jest to znacznie bardziej przypadkowy sposób generowania soli

$fp = fopen('/dev/urandom', 'r');
$randomString = fread($fp, 32);
fclose($fp);

Kodowanie 64 w celu zapewnienia, że ​​niektóre znaki nie będą powodować problemów z kryptą

$salt = base64_encode($randomString);

Do haszowania:

$hashed = crypt($passwordInput, 'Odkryłem, że niektóre z nich są przydatne:'.$salt);

Potwierdzać:

if (crypt($passwordInput, $hashed) == $hashed) { 
  // Valid action
} else { 
  // Invalid action
}

** Specjalne podziękowania dla @lathspell o pomoc w dotarciu do powyższego rozwiązania **

);

Ale wszyscy mówią, że nie należy definiować rund ani soli.

Jak więc z niego korzystać?

Mam też problem: kiedy uruchamiam powyższy kod, uruchamia on tylko 50 rund zamiast 5000 rund, tak jakby system go zatrzymywał.

Każda pomoc zostanie bardzo doceniona.

//- Rozwiązanie -//

Odkryłem, że niektóre z nich są przydatne:

Do generowania soli:

 $salt = substr(str_shuffle("./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345‌​6789"), 0, 8); 

lub

jeśli masz serwer linux, jest to znacznie bardziej przypadkowy sposób generowania soli

$fp = fopen('/dev/urandom', 'r');
$randomString = fread($fp, 32);
fclose($fp);

Kodowanie 64 w celu zapewnienia, że ​​niektóre znaki nie będą powodować problemów z kryptą

$salt = base64_encode($randomString);

Do haszowania:

$hashed = crypt($passwordInput, 'Odkryłem, że niektóre z nich są przydatne:'.$salt);

Potwierdzać:

if (crypt($passwordInput, $hashed) == $hashed) { 
  // Valid action
} else { 
  // Invalid action
}

** Specjalne podziękowania dla @lathspell o pomoc w dotarciu do powyższego rozwiązania **

questionAnswers(2)

yourAnswerToTheQuestion