Хеширование паролей на сайтах работает по следующему алгоритму: 1
- Регистрация пользователя: 1
- Пользователь создаёт аккаунт, вводя свой пароль. 1
- Вместо того чтобы сохранять введённый пароль напрямую в базу данных, сайт использует хеш-функцию для преобразования пароля в хеш-код. 1
- Полученный хеш-код пароля сохраняется в базе данных. 1
- Вход в систему: 1
- Пользователь вводит свой пароль для входа в аккаунт. 1
- Сайт снова использует ту же хеш-функцию для преобразования введённого пароля в хеш. 1
- Сайт сравнивает хеш введённого пароля с хешем, сохранённым в базе данных при регистрации. 1
- Если хеши совпадают, доступ предоставляется, так как это означает, что введённый пароль верен. 1
Почему это работает: 1
- Хеш-функции детерминированы: один и тот же входной пароль всегда даёт один и тот же хеш. 1
- Хеширование безопасно: если база данных будет скомпрометирована, злоумышленники увидят только хеш-коды паролей, а не сами пароли. 1
- Хорошие хеш-функции делают практически невозможным обратное преобразование хеша в исходный пароль. 1
Чтобы сделать процесс хеширования более надёжным, используется «соль» — случайная последовательность символов, которая добавляется к паролю перед его хешированием. 4