Извините, если это глупый вопрос, я просто хочу знать: в чем суть соли в bcrypt? Я имею в виду, если у вас есть следующий код для создания хэш от пароля:Точка с солью в bcrypt
function generateSalt() {
$salt = '$2a$13$';
$salt = $salt . '1111111111111111111111';
return $salt;
}
function generateHash($salt, $password) {
$hash = crypt($password, $salt);
return $hash;
}
$salt = generateSalt();
$providedPassword = generateHash($salt, rand(3,29));
echo $providedPassword;
Вышеуказанные выходы, например:.
$ 2a $ 13 $ 111111111111111111111uDdpsIcwCVOwEyNueskskXkniY5206fW
$ 2a $ 13 $ 111111111111111111111udcvrNt9quPukFRl8/jXRzDGfE9lw0W
Таким образом, вы можете четко видеть, где заканчивается соль, и если кто-то получает базу данных, то не стоит указывать соль, так как они просто могут удалить солевую часть и искать только хешированный проход д. Итак, я неправильно использую bcrypt? (статическая соль должна была просто показать, где она появляется в моих хэшах), или есть причина в этом?
Я показал код в своем вопросе, и я получил код с этого сайта http://www.nathandavison.com/posts/view/13/php-bcrypt-hash-a-password-with-a-logical-salt Возможно, я внедряю это неправильно, потому что соль заканчивается только в начале хэша до «$ 2a $ 13 $» – DannyCruzeira
Соль должна быть произвольно сгенерирована для каждого пароля. Наличие фиксированной соли для всех паролей бессмысленно. Код, который вы используете, генерирует фиксированную соль. –
Я знаю, но то, что я хотел показать, было то, что соль не смешивается вместе со значением, которое хэшируется, только в начале, когда оно было создано. Я имею в виду? haha – DannyCruzeira