В данный момент я изучаю Rails, но ответ не должен быть Специфичные для Rails.
Насколько я понимаю, безопасная система паролей работает следующим образом:
При попытке входа в систему:
Насколько я понимаю, этот подход подвержен радужной атаке, при которой может произойти следующее.
Злоумышленник может написать сценарий, который по существу пробует каждую перестановку символов, чисел и символов, создает хэш с тем же алгоритмом шифрования и сравнивает их с хешем в базе данных.
Таким образом, можно комбинировать хэш с уникальной солью. Во многих случаях текущая дата и время (с точностью до миллисекунд), которые пользователь регистрирует.
Однако эта соль хранится в столбце «соль» базы данных.
Итак, мой вопрос: как это меняет тот факт, что если злоумышленник получил доступ к базе данных в первую очередь и создал хэш для «настоящего» пароля, а также имеет хеш для соли, как это не так же подвержен атаке радуги? Потому что теория будет такова, что он пробует каждую перестановку + хэш соли и сравнивает результат с хешем пароля. Это может занять немного больше времени, но я не понимаю, насколько это надежно.
Простите мое невежество, я просто изучаю эти вещи, и это никогда не имело для меня особого смысла.