Я использую Hashing and Salt для расшифровки пароля. то есть методы, которые я использую:Мы используем Re hashing Password в C#
public string CreateSalt(int size)
{
var rng = new RNGCryptoServiceProvider();
var buff = new byte[size];
rng.GetBytes(buff);
return Convert.ToBase64String(buff);
}
public string GenerateHash(string input, string salt)
{
byte[] bytes = Encoding.UTF8.GetBytes(input + salt);
SHA512Managed sha256 = new SHA512Managed();
byte[] hash= sha256.ComputeHash(bytes);
return ByteArrayToHexString(hash);
}
После того как я хэшируюсь пароль и сохранить его в базу данных, как я могу перефразировать это? Или даже если мне нужно снова перефразировать? Пользователи собираются создать свой пароль для входа на сайт. Я не решаю, как забудет пароль, так что, возможно, он собирается сбросить пароль и отправить их. Любая мысль, идея вокруг хеширования?
Планируете ли вы перефразировать его для сброса пароля? Если это так, вы либо разрешаете пользователю вводить новый пароль и хэш + соль, либо хеш + соль, новый сгенерированный пароль и заменять старый (или использовать столбцы временного пароля, чтобы разрешить использование старых паролей) –
FYI SHA512 считается плохой выбор для хэширования паролей, поскольку он слишком быстр, есть некоторые сомнения в схемах PBKDF, таких как bcrypt, но это, вероятно, лучший выбор. Вот хороший q & a для чтения: https://stackoverflow.com/questions/481160/is-bcrypt-a-good-hashing-algorithm-to-use-in-c-where-can-i-find-it –
take посмотрите на это .. Есть также много других вариантов, вам нужно будет сделать некоторые исследования и googling на вашем конце, а также http://www.codeproject.com/Articles/475262/UseplusBCryptplustoplusHashplusYourplusPasswords – MethodMan