--- aliases: tags: - maturity/🌱 date: 2024-11-03 --- ![[../../../garden/ru/meta/files/images/Pasted image 20241103184325.png]] **Что не следует делать** - **Хранение паролей в виде обычного текста** — это плохая практика, так как любой, имеющий доступ к данным, может увидеть пароли. - **Хранение хэшей паролей напрямую** — также небезопасно, так как они подвержены атакам с использованием заранее вычисленных таблиц, таких как rainbow tables (радужные таблицы). **Как защититься от атак с предварительным вычислением хэшей?** Для предотвращения атак с использованием радужных таблиц используется соль (salt). **Что такое соль?** Согласно рекомендациям OWASP, «соль — это уникальная, случайно сгенерированная строка, которая добавляется к каждому паролю как часть процесса хэширования». **Как хранить пароль и соль?** - Результат хэширования будет уникален для каждого пароля. - Пароль можно сохранить в базе данных в следующем формате: hash(password + salt). **Как проверить пароль?** Процесс проверки пароля может выглядеть следующим образом: 1. Клиент вводит пароль. 2. Система получает соответствующую соль из базы данных. 3. Система добавляет соль к паролю и выполняет хэширование. Назовем полученный хэш H1. 4. Система сравнивает H1 с H2, где H2 — это хэш, сохраненный в базе данных. Если они совпадают, пароль считается правильным. Такой подход значительно повышает безопасность системы, так как использование соли делает каждый хэш уникальным и усложняет атаки с использованием предварительно вычисленных таблиц. *** ## Мета информация **Область**:: **Родитель**:: **Источник**:: **Создана**:: [[2024-11-03]] **Автор**:: ### Дополнительные материалы - ### Дочерние заметки - [[Хеширование паролей пользователей алгоритмом bcrypt]]