Знову велосіпедостроітелі.
Зазвичай це так:
Поруч з паролем зберігайте user-specific "сіль" (випадкова довгий рядок), на рівні додатку "перець" (інша випадкова рядок). В поле пароля пишуть щось на кшталт хеш (хеш (пароль + сіль) + перець).
При аутентифікації вираховують значення хеша і порівнюють зі значенням в базі даних.
Для хеша не використовують md5. Краще взяти, наприклад, scrypt або bcrypt.
Дякую за розгорнуту відповідь!
Ну пароль заганяти в md5 (це php), потім вводиться так само вганяти і порівнювати. Шифруйте пароль і при цьому робіть приставку перед шифром: 1234 - це припустив приставка, qwertyuiop це пароль. Приставку і пароль ліпимо разом і шифруємо. При введенні так само до значення з інпут перед шифруванням додаємо 1 234
Може вам використовувати ASP Net Identity або Membership? Можете також подивитися в исходниках Simple Membersip Provider як здійснюється кодування паролів aspnetwebstack.codeplex.com/SourceControl/changese.
там використовується Crypto API який ви можете з успіхом використовувати замість самостійного кодування. Crypto.HashPassword msdn.microsoft.com/ru-ru/library/system.web.helper. пароль при цьому автоматично солиться.