2016-05-13 2 views
1

я была поставлена ​​задача checkmarx и WhiteHat исправлениями безопасности дозорного. Проблема в том, что изменение от SHA1 до SHA2 не работает автоматически. новыйHash является НЕ будет соответствовать всем сотни пользователей в таблице базы данных пароли.Обновление от SHA1 до УВХ2 ломает все, что в C# приложении

Что я полагаю, чтобы сделать, чтобы все изменения их пароль?

C# Изменение кода:

//SHA1 sha = SHA1.Create(); 
SHA256 sha = SHA256Managed.Create(); 

byte[] buff = sha.ComputeHash(Encoding.Unicode.GetBytes(SaltAndPwd)); 
+1

Хм, нет, больше хэш не требует другого пароля. Вам нужно только один раз узнать пароль. Когда у вас есть это, вы можете пройти аутентификацию со старым хэшем, сгенерировать новый хеш и удалить старый хеш. Не принимайте советы по безопасности от незнакомцев в Интернете. –

+0

Хороший момент, и вы не незнакомы. –

ответ

0

Как вы хорошо знаете, хеширования является односторонним, что означает не может быть расшифрован обратно в исходное значение, и ничто не может преобразовать, не зная исходного значения. Даже SHA2 имеет «другой» и более продвинутый алгоритм хэширования.

Один плохой вариант - это пометить пользователей по-разному, которые были зарегистрированы до SHA2. Тем не менее, пользователи со старым SHA1 могут быть подвергнуты взлому, так как сайт LinkedIn был взломан при использовании SHA1.

Моя идея такая же. Точно так же, как когда мы видим рекомендацию по изменению пароля в крупных интернет-сайтах, просто выполните короткий процесс, например, проверку старого пароля и получение нового пароля от пользователей.

NuGet пакет как PWDTK который имеет УВХ2 может помочь ..

+0

Я думаю, что идея Ханса Пассана в комментарии правильная. По его идее, сравните старый пароль с хэшированным значением ввода пользователя, и если они верны, добавьте код для хеша ввода пользователя с SHA2 и обновите этот новый хешированный значение в новый столбец. Я бы рекомендовал создать новый столбец, потому что если вы используете старый столбец пароля для сохранения нового хешированного пароля, старые пароли и новые пароли будут перемешаны, и будет сложно узнать момент времени, который будет завершен до SHA2 или не. Хорошее программирование! –

Смежные вопросы