Соль объединяется с паролем перед хешированием. значения пароля и слиты объединяются, и результирующая строка хэшируется. это гарантирует, что даже если два человека будут иметь один и тот же пароль, у вас будут разные хэши. (также делает атаки, известные как словарные атаки с использованием радужных таблиц, намного сложнее).
Затем соль сохраняется в оригинальном / чистом формате вместе с результатом хеширования. Затем, когда вы захотите подтвердить пароль, вы снова выполните исходный процесс. Объедините соль из записи с паролем, предоставленным пользователем, хэшируйте результат, сравните хеш.
Вы, наверное, уже знаете это. но важно помнить. соль должна генерироваться случайным образом каждый раз. Он должен быть разным для каждого защищенного хэша. Часто для получения соли используется ГСЧ.
Так ... например:
пароль пользователя: "mypassword"
случайная соль: "abcdefg12345"
result-cleartext: "mypassword: abcdefg12345" (как вы их комбинируете, зависит от вас. Пока вы каждый раз используете один и тот же формат комбинации).
хэшируйте результирующий открытый текст: «некоторый стандартный алгоритм на основе хэша»
Теперь в вашей базе данных вы должны хранить хеш и соль Я видел это двумя способами:
метод 1:
field1 - salt = "abcdefg12345"
field2 - password_hash = "некоторый стандартный алгоритм на основе хэша"
метод 2:
field1 - password_hash = "abcdefg12345: некоторый стандартный алгоритм на основе хэша"
В любом случае вы должны загрузить хэш соли и пароля из вашей базы данных и переделать хеш для сравнения