Правильно использовать crypt () с SHA512 в PHP

Все примеры онлайн показывают использование склепа следующим образом:

$pass = crypt('something','Я нашел некоторые из них полезными:rounds=5000$anexamplestringforsalt

Но все говорят, что вы не должны определять раунды или соль.

Так как мне это использовать?

Также у меня возникла проблема: когда я запускаю приведенный выше код, он запускает только 50 раундов вместо 5000 раундов, как будто система его останавливает.

Любая помощь будет оценена.

//- Решение -//

$6$

Для получения соли:

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

или же

если у вас есть сервер Linux, это гораздо более случайный способ генерации соли

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

Кодирование Base 64, чтобы некоторые символы не вызывали проблем для крипты

$salt = base64_encode($randomString);

Для хеширования:

$hashed = crypt($passwordInput, '$6

Подтвердить:

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

** Особая благодарность @lathspell за помощь в достижении вышеуказанного решения **

);

Но все говорят, что вы не должны определять раунды или соль.

Так как мне это использовать?

Также у меня возникла проблема: когда я запускаю приведенный выше код, он запускает только 50 раундов вместо 5000 раундов, как будто система его останавливает.

Любая помощь будет оценена.

//- Решение -//

$6$

Для получения соли:

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

или же

если у вас есть сервер Linux, это гораздо более случайный способ генерации соли

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

Кодирование Base 64, чтобы некоторые символы не вызывали проблем для крипты

$salt = base64_encode($randomString);

Для хеширования:

$hashed = crypt($passwordInput, '$6$'.$salt);

Подтвердить:

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

** Особая благодарность @lathspell за помощь в достижении вышеуказанного решения **

.$salt);

Подтвердить:

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

** Особая благодарность @lathspell за помощь в достижении вышеуказанного решения **

);

Но все говорят, что вы не должны определять раунды или соль.

Так как мне это использовать?

Также у меня возникла проблема: когда я запускаю приведенный выше код, он запускает только 50 раундов вместо 5000 раундов, как будто система его останавливает.

Любая помощь будет оценена.

//- Решение -//

$6$

Для получения соли:

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

или же

если у вас есть сервер Linux, это гораздо более случайный способ генерации соли

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

Кодирование Base 64, чтобы некоторые символы не вызывали проблем для крипты

$salt = base64_encode($randomString);

Для хеширования:

$hashed = crypt($passwordInput, '$6$'.$salt);

Подтвердить:

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

** Особая благодарность @lathspell за помощь в достижении вышеуказанного решения **

Ответы на вопрос(2)

Ваш ответ на вопрос