У меня есть приложение С#, которому необходимо подключиться к базе данных SQL, чтобы время от времени отправлять некоторые данные. Как я могу безопасно хранить имя пользователя и пароль, используемые для этого задания?
Как безопасно хранить логин и пароль базы данных в приложении С#?
Ответ 1
Есть хорошая статья MSDN о том, как защитить строки подключения в .Net.
Возможно, вы захотите использовать защищенную конфигурацию.
Ответ 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, который является довольно безопасным симметричным ключом шифрования. Здесь можно найти хорошую статью об этой информации (и учебнике);
Ответ 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();
}