Corretamente usando crypt () com SHA512 em PHP

Todos os exemplos online mostram o uso da cripta assim:

$pass = crypt('something','Eu encontrei alguns destes para ser útil:rounds=5000$anexamplestringforsalt

Mas todo mundo diz que você não deve definir as rodadas ou o sal.

Então, como devo usá-lo?

Também estou tendo um problema: quando executo o código acima, ele só roda 50 rodadas ao invés de 5000 rodadas como se o sistema estivesse parando.

Qualquer ajuda será muito apreciada.

// - Solução - //

Eu encontrei alguns destes para ser útil:

Para gerar sal:

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

ou

se você tem um servidor linux, esta é uma maneira muito mais aleatória de gerar sal

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

Base 64 codificar para garantir que alguns caracteres não causem problemas para cripta

$salt = base64_encode($randomString);

Para Hashing:

$hashed = crypt($passwordInput, 'Eu encontrei alguns destes para ser útil:'.$salt);

Confirmar:

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

** Agradecimentos especiais para @lathspell para ajuda na obtenção da solução acima **

);

Mas todo mundo diz que você não deve definir as rodadas ou o sal.

Então, como devo usá-lo?

Também estou tendo um problema: quando executo o código acima, ele só roda 50 rodadas ao invés de 5000 rodadas como se o sistema estivesse parando.

Qualquer ajuda será muito apreciada.

// - Solução - //

Eu encontrei alguns destes para ser útil:

Para gerar sal:

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

ou

se você tem um servidor linux, esta é uma maneira muito mais aleatória de gerar sal

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

Base 64 codificar para garantir que alguns caracteres não causem problemas para cripta

$salt = base64_encode($randomString);

Para Hashing:

$hashed = crypt($passwordInput, 'Eu encontrei alguns destes para ser útil:'.$salt);

Confirmar:

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

** Agradecimentos especiais para @lathspell para ajuda na obtenção da solução acima **

questionAnswers(2)

yourAnswerToTheQuestion