Хэш с солью

Хэш с солью — это способ безопасного хранения паролей и других чувствительных данных, который защищает от атак по словарю и радужных таблиц.


1️⃣ Что такое хэш

  • Хэш-функция превращает любой вход (например, пароль) в фиксированную строку (хэш).

  • Хэш односторонний: из хэша нельзя восстановить исходные данные.

  • Пример:

    пароль: "password123"
    хэш: "ef92b778bafe771e89245b89ecbc5c2f"

2️⃣ Проблема без соли

  • Два одинаковых пароля → один и тот же хэш.

  • Хакеры могут использовать радужные таблицы (готовые хэши паролей) для быстрого взлома.


3️⃣ Что такое соль

  • Соль (salt) — случайная строка, которая добавляется к паролю перед хэшированием.

  • Каждый пользователь получает уникальную соль, даже если пароль одинаковый.

  • Пример:

    пароль: "password123"
    соль: "x9f4z1"
    хэш с солью: hash("password123x9f4z1") → "a1b2c3d4..."

4️⃣ Преимущества хэша с солью

  1. Один и тот же пароль → разные хэши для разных пользователей.

  2. Радужные таблицы становятся бесполезными.

  3. Повышается защита при утечке базы данных.


5️⃣ Дополнительно

  • Иногда используют pepper — секретную соль, хранится отдельно от базы данных.

  • Современные алгоритмы для хэширования паролей: bcrypt, Argon2, scrypt (они автоматически используют соль и замедляют вычисления для защиты от брутфорса).


Для QA важно:

  • Проверять, что пароли хранятся только в виде хэша с солью, а не в открытом виде.

  • Проверять разные входные данные (одинаковые пароли → разные хэши).

Last updated

Was this helpful?