Usando correctamente crypt () con SHA512 en PHP

Todos los ejemplos en línea muestran el uso de la cripta de esta manera:

$pass = crypt('something','He encontrado algunos de estos para ser útiles:rounds=5000$anexamplestringforsalt

Pero todos dicen que no debes definir las rondas o la sal.

Entonces, ¿cómo debo usarlo?

También tengo un problema: cuando ejecuto el código anterior, solo ejecuta 50 rondas en lugar de 5000 rondas como si el sistema lo estuviera deteniendo.

Cualquier ayuda será apreciada.

// - Solución - //

He encontrado algunos de estos para ser útiles:

Para generar sal:

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

o

Si tiene un servidor Linux, esta es una forma mucho más aleatoria de generar sal.

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

Codificación de la base 64 para garantizar que algunos caracteres no causen problemas a crypt

$salt = base64_encode($randomString);

Para Hashing:

$hashed = crypt($passwordInput, 'He encontrado algunos de estos para ser útiles:'.$salt);

Para confirmar:

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

** Agradecimientos especiales a @lathspell por ayuda para llegar a la solución anterior **

);

Pero todos dicen que no debes definir las rondas o la sal.

Entonces, ¿cómo debo usarlo?

También tengo un problema: cuando ejecuto el código anterior, solo ejecuta 50 rondas en lugar de 5000 rondas como si el sistema lo estuviera deteniendo.

Cualquier ayuda será apreciada.

// - Solución - //

He encontrado algunos de estos para ser útiles:

Para generar sal:

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

o

Si tiene un servidor Linux, esta es una forma mucho más aleatoria de generar sal.

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

Codificación de la base 64 para garantizar que algunos caracteres no causen problemas a crypt

$salt = base64_encode($randomString);

Para Hashing:

$hashed = crypt($passwordInput, 'He encontrado algunos de estos para ser útiles:'.$salt);

Para confirmar:

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

** Agradecimientos especiales a @lathspell por ayuda para llegar a la solución anterior **

Respuestas a la pregunta(2)

Su respuesta a la pregunta