Как безопасно хранить логин и пароль базы данных в приложении С#?

У меня есть приложение С#, которому необходимо подключиться к базе данных SQL, чтобы время от времени отправлять некоторые данные. Как я могу безопасно хранить имя пользователя и пароль, используемые для этого задания?

Ответ 2

Используйте встроенную проверку подлинности Windows, когда это возможно. Он берет на себя ответственность за ваше приложение и позволяет Windows обрабатывать его. Использование проверки подлинности Windows вместо проверки подлинности SQL считается наилучшей практикой.

Прочтите этот принятый ответ: лучший способ подключения SQL Server (проверка подлинности Windows и проверка подлинности SQL Server) для приложения asp.net

Смотрите также: http://www.mssqltips.com/sqlservertip/1831/using-windows-groups-for-sql-server-logins-as-a-best-practice/

И: http://www.greensql.com/content/sql-server-security-best-practices

Кстати, если это "задание", как подразумевается в вопросе, оно может стать отличным кандидатом на простую службу Windows или запланированную задачу, оба из которых могут работать в определенном контексте безопасности (то есть в качестве конкретного пользователя Windows).

Ответ 3

в вашем app.config или web.config, а затем вы шифруете их с помощью поставщика шифрования .net.

для дополнительной информации здесь http://msdn.microsoft.com/en-us/library/dx0f3cf2%28v=vs.80%29.aspx

Шифрование информации конфигурации с использованием защищенной конфигурации

http://msdn.microsoft.com/en-us/library/53tyfkaw%28v=vs.80%29.aspx

Ответ 4

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

Ответ 5

Храните зашифрованную версию в строке подключения и программно создайте строку соединения после дешифрования пароля.

Вы можете использовать любой механизм шифрования по вашему выбору - от тривиального до сложного.

Ответ 6

Вы можете посмотреть ключ RijndaelManaged, который является довольно безопасным симметричным ключом шифрования. Здесь можно найти хорошую статью об этой информации (и учебнике);

http://www.obviex.com/samples/Encryption.aspx

Ответ 7

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

Ответ 8

Код, чтобы преобразовать перемещение в md5

using System.Text;
using System.Security.Cryptography;
    public static string ConvertStringtoMD5(string strword)
        {
            MD5 md5 = MD5.Create();
            byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(strword);
            byte[] hash = md5.ComputeHash(inputBytes);
            StringBuilder sb = new StringBuilder();
                for (int i = 0; i < hash.Length; i++)
               { 
                    sb.Append(hash[i].ToString("x2"));
               }
               return sb.ToString();
       }