winform 加密连接数据库

发表于:2013-11-27 09:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xiaoweiserver    来源:51Testing软件测试网采编

  在app.config中有配置代码如下:
<configuration>
<appSettings>
<add key="ConStringEncrypt" value="false" />
<add key="ConnectionString" value="Server=localhost;Database=testmysql;User=root;Password=xiaowei;Port=3306;Charset=utf8" />
</appSettings>
</configuration>
  在程序开始运行处加密数据库连接信息,防止别人盗用数据库密码信息
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
// 链接字符串加密
string ConStringEncrypt = ConfigurationManager.AppSettings["ConStringEncrypt"];
string _connectionString = ConfigurationManager.AppSettings["ConnectionString"];
if (ConStringEncrypt == "false")
{
_connectionString = DESEncrypt.Encrypt(_connectionString);
// 写入到config文件中
SetValue(Application.ExecutablePath + ".config",  "ConStringEncrypt", "true");
SetValue(Application.ExecutablePath + ".config",  "ConnectionString", _connectionString);
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FormMain());
}
}
public static void SetValue(string configPath, string AppKey, string AppValue)
{
XmlDocument xDoc = new XmlDocument();
//获取可执行文件的路径和名称
xDoc.Load(configPath);
XmlNode xNode;
XmlElement xElem1;
XmlElement xElem2;
xNode = xDoc.SelectSingleNode("//appSettings");
xElem1 = (XmlElement)xNode.SelectSingleNode("//add[@key='" + AppKey + "']");
if (xElem1 != null) xElem1.SetAttribute("value", AppValue);
else
{
xElem2 = xDoc.CreateElement("add");
xElem2.SetAttribute("key", AppKey);
xElem2.SetAttribute("value", AppValue);
xNode.AppendChild(xElem2);
}
xDoc.Save(configPath);
}
}
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号