如何安全地存储mysql连接数据?

时间:2013-05-14 11:32:23

标签: c# mysql security encryption

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

查看MSDN help site

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

答案 1 :(得分:1)

不,你不需要为它编写自己的加密, .NET确实已经加密了。

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

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

然后使用课程:Rijndael Class

并查看此主题:How to generate Rijndael KEY and IV using a passphrase?以正确/安全地使用加密。

示例:

 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;
    }