2015-01-12 8 views
2

У меня есть сайт PHP, на котором хранятся пароли пользователей, зашифрованные и соленые.Могу ли я опубликовать соль пароля?

Используемый метод crypt($password, $salt). Соль генерируется случайным образом.

Результат нечто вроде

$2a$08$saltsaltsaltsaltsaltsaltsaHashHashHashHashHashHashHash 

Теперь я должен войти в эту базу данных, используя что-то другое, чем PHP, например, .СЕТЬ. Проблема сейчас: crypt() не существует в .NET.

Теперь я переписываю crypt() в .NET и извлекаю соль из паролей с паролями.

Безопасно ли использовать соль, используемую для хэширования общедоступного пароля? Или я очень сильно ослабляю безопасность?

+0

Непонятно, что вы подразумеваете под «общественностью» здесь - вам всегда нужно знать соль, чтобы проверить пароль, поскольку вы шифруете введенный пользователем пароль с той же солью и проверяете, что результат такой же, как и исходный результат. –

+0

общественные средства, т.е. отправить соль кому-либо, прося ее. Затем пользователь может воссоздать свой собственный пароль на локальной машине. –

ответ

0

Да, отправка соли любому, кто просят об этом, небезопасен. Зная это, количество возможных значений угадывается намного меньше, и гораздо проще использовать атаки грубой силы, чтобы угадать оригинальный несозданный пароль. См. this answer in security.stackexchange.com для более подробной информации.