SQL-запрос для создания зашифрованного пароля - PullRequest
1 голос
/ 11 мая 2011

Я пытаюсь создать безопасный экран для входа в пароль на c #. Прямо сейчас я только что создал экран входа в систему, и я могу прочитать имя пользователя и пароль из базы данных. Но у меня не было зашифрованного пароля , Кто-нибудь может мне помочь, как написать запрос для генерации зашифрованного пароля и сохранить значение зашифрованного пароля в отдельном поле. Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

Ваша лучшая ставка - одностороннее шифрование.

В этом случае пользователь выбирает / получает пароль.Когда этот пароль хранится в базе данных, он проходит это одностороннее шифрование перед его сохранением.(Вы будете делать это в своем коде c #)

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

Это гарантирует, что если хакер войдет в базу данных, будет трудно выучить пароль, потому что ему придется определить тип шифрования, а затем разработать способ его дешифрования, который, на мой взгляд, труден в лучшем случае,в худшем случае невозможно.

Вот ссылка на некоторый код, который может помочь. Одностороннее шифрование

Вы не хотите выполнять шифрование в самом sql, потому что, если хакер получит доступ к вашей базе данных, он сможет просто посмотреть на процедуру / функцию, котораяВы используете для шифрования, и они будут гораздо проще.

И вы не хотите хранить пароль в базе данных в незашифрованном виде ...

Лучше всего написать код для чтения пароля, зашифровать его и обновитьзапись, тогда все, что вам нужно сделать, это продолжать использовать тот же тип шифрования и соль.

Библиотека криптографии c # очень проста в использовании.

1 голос
/ 11 мая 2011

Рассмотрите возможность хеширования пароля, который вы храните в данный момент.SQL может хэшировать пароль следующим образом:

DECLARE @HashThisPassword nvarchar(4000);
SELECT @HashThisPassword = CONVERT(nvarchar(4000),'dslfdkjLK85kldhnv$n000#knf');
SELECT HashBytes('SHA1', @HashThisPassword);

... Но SQL даже не должен этого делать.Вы должны хешировать пароль, как только ваше приложение C # получит его, и только потом передавать хешированный пароль в SQL для сохранения.При проверке, предоставил ли пользователь правильный пароль для входа, сравните хэши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...