Соль - это значение, которое добавляется к паролю (или другому секрету), который вы хотите хэшировать одним способом.Это означает, что он может быть до, после или где-то внутри пароля, если его позиция и значение согласованы для данного предоставленного пароля.
Что он делает, так это смягчает атаки по словарю - в основном словари общих паролейпредварительное хеширование без соли - от того, что его использовали для «угадывания» одностороннего пароля, если злоумышленник не знает хеш.Если у каждого пароля свой хэш, то злоумышленнику будет очень трудно создать словарь, оптимизированный для взлома ваших паролей (ему потребуется словарь для каждой отдельной соли, а также он должен знать, где соль помещена в каждом пароле).).
Конечно, чтобы все это было применимо, злоумышленник должен в первую очередь использовать хэши ваших паролей.Это не имеет ничего общего с атакующими паролями, угадывая их с помощью некоторого ввода.
Что касается MySQL, особенно если вы предоставляете соль при хешировании пароля, убедитесь, что вы записали, что это за соль была где-то.Затем, когда пользователь пытается выполнить аутентификацию, вы объединяете это записанное солт-значение с паролем (например, во время вызова на crypt
), и если полученный хеш-код совпадает, он вводит правильный пароль.(Обратите внимание, что хеширование пароля никогда не отменяется; таким образом, один способ.)