Соль — уникальное случайное значение, которое добавляют к паролю перед вычислением парольного хеша. Благодаря ей одинаковые пароли получают разные результаты, а заранее подготовленные таблицы нельзя эффективно применить ко всей базе сразу.
Для каждой записи генерируют новую соль через CSPRNG и передают её вместе с паролем в Argon2id, scrypt, bcrypt или другую подходящую парольную функцию. Соль не обязана быть секретной и хранится рядом с хешем и параметрами алгоритма.
У двух пользователей одинаковый пароль, но сервис создаёт разные 128-битные соли. Их Argon2id-хеши различаются; при входе система берёт соль конкретной записи и повторяет вычисление с сохранёнными параметрами.
Обычно нет: её задача — уникальность, а не секретность. Защищать нужно всю базу и, если используется, отдельный pepper.
Можно ли использовать логин как соль?Не следует: он предсказуем и может повторяться или меняться; соль генерируют случайно для каждой записи.
Соль защищает слабый пароль от перебора?Она мешает массовым предвычислениям, но не заменяет ресурсоёмкую парольную функцию, сильный пароль и ограничение атак.