2

我想开始一个新项目,我发现的第一个问题是我的 mysql 连接数据的安全性。

我想知道是否可以配置软件来选择数据库服务器;出于这个原因,有必要将连接信息(用户、密码、数据库名)存储在某种文件(xml、bin、...)中,但这并不安全,由于缺乏加密,每个人都可以查看。

有没有一种简单的方法来保护这些敏感信息,或者我必须为此编写自己的加密机制?

如果我必须自己编写一个,是否有正确的指导方针?

4

2 回答 2

2

应用程序配置中的连接字符串是一种非常常见的场景。通常,您将这些值保存在名为app.configor的文件中web.config

查看MSDN 帮助站点

您要查找的部分称为使用受保护的配置加密配置文件部分

于 2013-05-14T11:55:30.067 回答
1

不,您不需要为它编写自己的加密,.NET 已经有了加密。

只需使用 Rijndael (AES) - 加密。

导入命名空间:using System.Security.Cryptography;

然后使用类:Rijndael Class

并看看这个线程:如何使用密码生成 Rijndael KEY 和 IV?正确/安全地使用加密。

例子:

 private static byte[] EncryptString(byte[] clearText, byte[] Key, byte[] IV)
    {
        MemoryStream ms = new MemoryStream();
        Rijndael alg = Rijndael.Create();
        alg.Key = Key; //Look at the linked Stackoverflow-Thread
        alg.IV = IV; // on how to create Key and IV
        CryptoStream cs = new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write);
        cs.Write(clearText, 0, clearText.Length);
        cs.Close();
        byte[] encryptedData = ms.ToArray();
        return encryptedData;
    }
于 2013-05-14T11:39:16.370 回答