Вам необходимо будет ввести имя пользователя и пароль (пароль из скрытого текстового поля, желательно со вторым полем для подтверждения), солить его и создать хэш из пароля, а затем вставить имя пользователя и сотовый хэш пароля в базу данных. Затем вы можете проверить пароль пользователей в будущем, сравнив сохраненную версию базы данных с хешем соленой (такой же соли!) Того, что вводит пользователь.
Обратите внимание, что каждый пользователь должен иметь свою соль, которую вы произвольно генерируете для этого пользователя, когда они создают свою учетную запись. (Это более безопасно, что глобальная ценность соли, которую может обнаружить хакер).
Посмотрите на this article. Он в значительной степени охватывает все базы, но не использует SHA-1, как рекомендовано в статье. Вы хотите медленную хеш-функцию, которая является дорогостоящей вычислительной, такой как BCrypt, или PBKDF2 (которая включена в .NET). См. "What makes a good hash function for passwords". (Спасибо @CodeInChaos за то, что указали это).
Вы можете использовать Rfc2898DeriveBytes в System.Security.Cryptography для создания засоленного хэша пароля, стиля PBKDF2.
byte[] salt = Guid.NewGuid().ToByteArray[];
Rfc2898DeriveBytes saltedHash = new Rfc2898DeriveBytes("[email protected]$$w0rd", salt, 1000);
Хорошее эмпирическое правило состоит в том, что количество итераций должно приводить к тому, что операция хеширования занимает около секунды.
Если вы используете шифрование для защиты пароля, вы делаете это неправильно. –