2015-02-02 2 views
-3

Я использую 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); 
    } 

После того как я хэшируюсь пароль и сохранить его в базу данных, как я могу перефразировать это? Или даже если мне нужно снова перефразировать? Пользователи собираются создать свой пароль для входа на сайт. Я не решаю, как забудет пароль, так что, возможно, он собирается сбросить пароль и отправить их. Любая мысль, идея вокруг хеширования?

+1

Планируете ли вы перефразировать его для сброса пароля? Если это так, вы либо разрешаете пользователю вводить новый пароль и хэш + соль, либо хеш + соль, новый сгенерированный пароль и заменять старый (или использовать столбцы временного пароля, чтобы разрешить использование старых паролей) –

+5

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 –

+0

take посмотрите на это .. Есть также много других вариантов, вам нужно будет сделать некоторые исследования и googling на вашем конце, а также http://www.codeproject.com/Articles/475262/UseplusBCryptplustoplusHashplusYourplusPasswords – MethodMan

ответ

1

В базе данных необходимо сохранить как хешированный пароль, так и пароль. Когда пользователи регистрируются, вы получаете пароль ввода, хэшируете его с сохраненной солью в базе данных, а затем сравниваете результат с сохраненным хешированным паролем.

enter image description here

Вы правы о забыли пароль. Просто создайте случайный пароль и отправьте его пользователям.

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