Перейти к содержимому
>_ITDITDПлатформа веб-безопасности

Глоссарий

Что такое соль? «Приправа» на каждого пользователя, добавляемая к хешу пароля

Соль (salt) — это случайное значение для каждого пользователя, добавляемое перед хешированием пароля. Один и тот же пароль хранится по-разному у всех, что побеждает радужные таблицы и массовый перебор. Чем соль отличается от перца.

Опубликовано 2026-06-27 Обновлено 2026-06-27 2 мин чтения

«Соль» всплывает, как только заходит речь о хешировании паролей. Как соль в готовке, добавление щепотки к хешу кардинально меняет картину безопасности. Вот как это работает и ключевые моменты (без шагов атаки).

Почему «приправа» работает

Без соли пользователи с одинаковым паролем получают одинаковый сохранённый хеш. Это даёт атакующему два сокращения: предвычисленная таблица поиска (радужная таблица) попадает напрямую, и «взлом одного аккаунта переиспользуется на всех с тем же паролем».

Добавьте соль — и тот же "password123" хранится как нечто совершенно иное для каждого пользователя.

Без соли: "password123" → одинаковый хеш для всех (таблица попадает мгновенно)
↓ добавьте соль на каждого пользователя
Alice: salt_a + password123 → хеш X
Bob: salt_b + password123 → хеш Y (≠ X)
Один пароль, разные соли → разные сохранённые значения у всех. Предвычисленные таблицы перестают работать.

Распространённые заблуждения против правды

Заблуждение

  • Соль должна храниться в секрете
  • Одна общая соль для всех пользователей — это нормально
  • Соль делает безопасными даже слабые пароли

Правда

  • Соль может быть публичной (храните её с хешем)
  • Разное случайное значение на каждого пользователя (в идеале на каждый пароль)
  • Соль защищает от «предвычисления и взлома повторов»; перебор обрабатывается медленным хешем

Мнение этого сайта: соль — это не перец

С солью часто путают перец: секретное значение, добавляемое повсеместно и хранимое где-то помимо базы данных (конфиг приложения или менеджер ключей). У соли (публичной, на каждого пользователя) и перца (секретного, глобального) разные задачи — ни одно не заменяет другое. На практике, впрочем, первый приоритет — просто правильно использовать соль + медленный хеш через bcrypt/Argon2.

Читать дальше

FAQ

QДолжна ли соль храниться в секрете?
A

Нет. Соль — не «секретный ключ»; её нормально хранить рядом с хешем. Её цель — не секретность, а то, чтобы один и тот же пароль хранился по-разному у каждого пользователя, что побеждает предвычисление (радужные таблицы) и массовый взлом повторов. То, что держат в секрете, — это другое понятие, «перец» (см. ниже).

QМожно ли использовать одну и ту же соль для всех пользователей?
A

Нет. Соль должна быть случайным значением, разным для каждого пользователя (в идеале для каждого пароля). Общая соль приводит к тому, что у пользователей с одинаковым паролем хранятся идентичные хеши, поэтому атакующий может вскрыть много аккаунтов одним прогоном перебора. Генерируйте свежую криптографическим ГПСЧ каждый раз.

QНужно ли реализовывать соль самому?
A

Обычно нет. Специально созданные хеши вроде bcrypt, Argon2 и scrypt генерируют и хранят соль за вас (часто встроенную в строку хеша). Вместо того чтобы добавлять соль вручную, опирайтесь на эти стандартные реализации — это безопаснее и надёжнее.