如何安全数据库登录名和密码存储在C#应用程序?(How do I safely store data

2019-06-26 13:41发布

我有一个需要连接到SQL数据库发送一些数据不时C#应用程序。 我怎样才能安全地存储用于该作业的用户名和密码?

Answer 1:

有一个很好的MSDN文章有关如何在.net安全连接字符串。

您可能需要使用受保护的配置 。



Answer 2:

尽可能使用集成的Windows身份验证。 这需要有责任把你的应用程序,并允许Windows处理它。 使用Windows身份验证而不是SQL身份验证被认为是最好的做法。

阅读接受的答案: 连接SQL服务器(Windows身份验证VS 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用户)运行一个伟大的候选人。



Answer 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



Answer 4:

不知道您的具体要求,但首先,你必须加密密码。 此外,传输这样的敏感信息时,可以考虑使用一个安全的连接。



Answer 5:

在连接字符串中存储的加密版本解密密码后,编程形成连接字符串。

你可以使用任何你选择的加密机制 - 从平凡到复杂。



Answer 6:

你可能想看看RijndaelManaged的关键,这是一个相当安全的对称加密密钥。 该信息(和教程)一篇好文章可以在这里找到;

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



Answer 7:

您可以使用加密和dyscryption算法的密码,并通过谁创造用户,什么日期时间它创造了记录用户信息,并保存此数据库。 即使有人更新或修改登录数据库的信息。



Answer 8:

代码转换成stirng 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();
       }


文章来源: How do I safely store database login and password in a C# application?