Как эффективно сохранить пароль базы данных в настольном приложении?

StackOverflow https://stackoverflow.com/questions/2155279

Вопрос

Я создаю настольное приложение (назовем его app), которое использует базу данных (mysql).У большего количества пользователей приложения есть общий доступ к одному пользователю базы данных.Пример :Пользователи приложения John и Mike подключаются к базе данных как "dbuser" и т.д.

Проблема в том, что : Как мне эффективно сохранять пароли для пользователей базы данных? (PWD пользователей приложения хранятся в базе данных).

Возможные решения, которые я нашел :1.в коде - это на самом деле довольно глупо:D 2.в текстовом INI-файле - легко читается!3.зашифрованный во внешнем файле - хорошо, но нужен доступ к приложению.

Это было полезно?

Решение

(PWD пользователей приложения хранятся в базе данных).

Шифруйте сохраненные пароли с помощью SHA1/SHA2 алгоритм.Это наиболее часто используемая техника.Я не .NET-разработчик, но я почти уверен, что они где-то предоставляют эту функцию.

Когда пользователь войдет в систему, снова зашифруйте указанный пароль и сравните его с сохраненным.Если они равны, позвольте пользователю войти в систему.

Другие советы

Вы можете сохранить его в INI-файле в зашифрованном формате.Это лучший способ, ИМХО.Я сохраняю строку подключения в App.config приложения .NET в зашифрованном формате.

Редактировать:

Чтобы отредактировать строку подключения, я использую другое значение конфигурации в AppSettings файла App.Config CSEncryption="Y| N | R"

если это Y, строка подключения зашифрована, расшифруйте и используйте ее.

если это N, строка подключения не зашифрована, используйте ее напрямую.

если это R, строка подключения не зашифрована, зашифруйте ее и обновите строку подключения и установите для CSEncryption значение 'Y' в App.Config.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top