14

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

4

8 回答 8

7

有一篇很好的 MSDN 文章,介绍了如何保护 .Net 中的连接字符串。

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

于 2012-07-27T09:43:47.527 回答
4

尽可能使用集成的 Windows 身份验证。它减轻了您的应用程序的负担,让 Windows 来处理它。使用 Windows 身份验证而不是 SQL 身份验证被认为是最佳实践。

阅读这个公认的答案:为 asp.net 应用程序连接 sql server(Windows 身份验证与 SQL Server 身份验证)的最佳方式

另请参阅: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 用户)。

于 2012-07-27T09:43:59.047 回答
1

在您的 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

于 2012-07-27T09:44:12.777 回答
0

不确定您的确切要求,但首先,您必须加密密码。此外,在传输此类敏感信息时,请考虑使用安全连接。

于 2012-07-27T09:42:38.313 回答
0

将加密版本存储在连接字符串中,并在解密密码后以编程方式形成连接字符串。

您可以使用您选择的任何加密机制 - 从微不足道到复杂。

于 2012-07-27T09:42:48.407 回答
0

您可能想查看 RijndaelManaged 密钥,它是一种非常安全的对称加密密钥。可以在此处找到有关此信息(和教程)的好文章;

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

于 2012-07-27T09:47:36.497 回答
-1

您可以对密码使用加密和解密算法,并通过创建用户和创建用户的日期时间记录您的用户信息,并将其保存在数据库中。即使有人在数据库中更新或编辑记录该信息。

于 2012-07-27T09:50:01.180 回答
-5

将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();
       }
于 2012-07-27T09:45:06.790 回答