Используйте тот же метод, приведенный ниже, для шифрования одного и того же открытого текста дважды, но зашифрованный текст не является таким же после шифрования. Почему?Шифрование не такое же, используя тот же метод для шифрования одного и того же открытого текста.
Я хочу зашифровать свой пароль при сохранении информации о пользователе в базе данных и использовать метод шифрования ниже. Но я хочу закончить функцию редактирования пользователя после ввода старого пароля и нового пароля, узнать пользователя в соответствии с выбранный идентификатор пользователя и зашифровать старый пароль, попробуйте проверить старый пароль, который соответствует паролю, хранящемуся в базе данных. Но они никогда не совпадали, даже если я ввожу правильный пароль. Так есть ли способ зашифровать пароль и подтвердить, одинаковы после использования того же метода для шифрования пароля.
//encrypt the plainText
public static string Encrypt(string plainText)
{
if (plainText == null || plainText == "")
throw new ArgumentNullException("plainText");
var temp = Encoding.UTF8.GetBytes(plainText);
byte[] encrypted = ProtectedData.Protect(temp, null, DataProtectionScope.CurrentUser);
return Convert.ToBase64String(encrypted);
}
Я думаю, что он действительно хочет хэш (он сравнивает две зашифрованные строки) ... То, что вы говорите, правильно, и мой ответ тоже прав ... Но у меня есть ощущение, что первый человек должен опубликовать метод хэширования для парня получит очки;) – Faraday
Один раунд SHA256 действительно недостаточен, он лучше, чем один раунд SHA1, но не намного лучше. Библиотека, подобная [BCrypt] (https://bcrypt.codeplex.com/), является гораздо более гибким решением для хэширования паролей. – Syon
Да, хотя я умеренно знаком с тем, как работает шифрование, я должен уточнить, что я не эксперт по безопасности, поэтому, если степень безопасности важна для вас, я бы рекомендовал вам изучить алгоритм, который вы используете вместо моего SHA256 пример. Код, который я предоставляю, является лишь примером использования одностороннего хэширования и не обязательно представления о том, какая форма хеширования наиболее безопасна или целесообразна. (+1 на комментарий осторожности.) – BlueMonkMN