Являются ли соли бесполезными для безопасности, если злоумышленник знает их?
Допустим, у меня есть таблица пользователей, настроенная так:
CREATE TABLE `users` (
`id` INTEGER PRIMARY KEY,
`name` TEXT,
`hashed_password` TEXT,
`salt` TEXT
)
Когда пользователь создан, случайно сгенерированная соль производится и сохраняется в базе данных вместе с результатами чего-то вродеget_hash(salt + plaintext_password)
.
Мне интересно, что если злоумышленник получит в свои руки эти данные, сможет ли он использовать их для взлома паролей пользователей? Если да, то каким образом это можно предотвратить?