Я запускаю веб-сайт, и я пытаюсь решить, как шифровать пароли пользователей для их хранения в базе данных SQL.
Я понимаю, что использование простого md5 (пароля) очень небезопасно. Я рассматриваю использование sha512 (password.salt), и я изучал лучший способ создания полезной соли. Я читал многочисленные статьи о том, что соль должна быть настолько случайной, насколько это возможно, чтобы добавить энтропию к хешу, и это выглядит как отличная идея. Но:
- вам нужно сохранить случайную соль вместе с вашим хешем
- учитывая, что злоумышленник каким-то образом получил доступ к вашим хешированным паролям (и пытается изменить хеш на обычный текст), это означает, что он, вероятно, сбросил вашу базу данных, затем также получил доступ к вашим случайным солям.
Не очевидно ли, что странное выглядящее значение рядом с хэшем в базе данных является солью? Если злоумышленник может получить доступ к соли вместе с хеш-значением, как это безопаснее?
У кого-нибудь есть опыт в этой области? Спасибо!