Компания, в которой я работаю, взяла на себя контракт на поддержку системы обработки больших заказов. В рамках первоначального системного аудита я заметил, что пароли, хранящиеся в базе данных, на самом деле являются хэш-кодом пароля.Использование GetHashCode для «защищенных» паролей пользователей
По существу:
string pwd = "some pasword";
string securePwd = pwd.GetHashCode();
Мой вопрос, как безопасный или иначе это?
Мне это не удобно, но я не знаю, как работает GetHashCode. Я бы предпочел использовать что-то вроде хэша MD5, но если я трачу свое время, я не буду беспокоиться.
Не нарушены ли SHA1 и MD5? –
Зависит от того, как вы определяете сломанные. Известны методы вычисления значения, которое сталкивается (по крайней мере, я уверен в этом случае в MD5), но это не делает их бесполезными. Даже соленого MD5 достаточно для хранения паролей в большинстве случаев. Их «сломанный» атрибут влияет на цифровые подписи гораздо больше. –
О, я сказал, что я никоим образом не рекомендую использовать MD5 или SHA1. Как сказал Митч, пойдите с алгоритмами SHA256 или выше. Весь смысл моего комментария состоял в «сломанной» вещи. В алгоритмах шифрования break = dead. Но в хэш-алгоритмах есть немного более серая область. –