当前位置:首页>网络学院>程序开发>ASP.NET教程>文章内容

让安装程序为配置文件的连接字符串加密

[ 来源:http://www.it55.com | 作者: | 时间:2007-08-03 | 收藏 | 推荐 ] 【

由于安全需要,我们发布的程序不应该将连接字符串直接暴露给终端用户,所以有必要对配置文件中的连接字符串加密。

45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

这里简要介绍在安装程序中为连接字符串加密的方法(针对winform程序)。

it55.com

首先,创建一个类库程序,名称为ClientInstallAction,新建类InstallAction.cs。代码如下。 免费资源www.it55.com

[RunInstaller(true)]
   public class InstallAction : Installer
   {
       public override void Install(System.Collections.IDictionary stateSaver)
       {
           base.Install(stateSaver);
           mEncryptConfig();
       }

vd;k;l www.it55.com rdfg

       /// <summary>
       /// 安装路径
       /// </summary> www.it55.com

       private string _installPath
       {
           get
           {
               return Context.Parameters["TARGETDIR"];
           }
       }
       /// <summary>
       /// 配置文件路径 configuration file path
       /// </summary>
       private string XmlPath
       {
           get
           {
               return Path.Combine(_installPath, @""); www.it55.com在线教程
           }
       }

IT资讯之家 www.it55.com

       private void mEncryptConfig()
       {
           XmlDocument doc = new XmlDocument();
           doc.Load(XmlPath);
           XmlNode connectionStringsNode = doc.SelectSingleNode("/configuration/connectionStrings");//查找connectionstring结点 www.it55.com

           DESProtectedConfigurationProvider provider = new DESProtectedConfigurationProvider();

免费资源www.it55.com

           XmlElement newConnectionStringsNode = doc.CreateElement("EncryptedData");
           newConnectionStringsNode.InnerXml = provider.Encrypt(connectionStringsNode).InnerXml;//加密字符串

45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

           connectionStringsNode.RemoveAll();
           connectionStringsNode.AppendChild(newConnectionStringsNode as XmlNode);//删除并替换connectionstring结点 45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

           XmlAttribute configProtectionAtt = doc.CreateAttribute("configProtectionProvider");
           configProtectionAtt.Value = "DESProtectedConfigurationProvider";

it55.com

           connectionStringsNode.Attributes.Append(configProtectionAtt);
           doc.Save(XmlPath);
       }
   } 免费资源www.it55.com

然后创建用于加密解密的类DESProtectedConfigurationProvider.cs

www.it55.com在线教程

代码如下 www.it55.com

public class DESProtectedConfigurationProvider : ProtectedConfigurationProvider
  {
      //Set Key and IV
      private byte[] desKey = { 23, 44, 54, 12, 42, 77, 45, 33 };
      private byte[] desIV = { 39, 48, 5, 32, 55, 46, 30, 99 };

sflj www.it55.com kg^&fgd

      //Create DES provider
      private DESCryptoServiceProvider mProvider = new DESCryptoServiceProvider(); www.it55.com在线教程

      private string pName;

www.it55.com在线教程

      // Gets the provider name.
      public override string Name
      {
          get { return pName; }
      }

sflj www.it55.com kg^&fgd

      // Performs provider initialization.
      public override void Initialize(string name,
          NameValueCollection config)

(编辑:IT资讯之家 www.it55.com

返回顶部
共3页: 上一页 1 [2] [3] 下一页  

网友评论

[以下评论为网友观点,不代表本站。请自觉遵守互联网相关政策法规,所有连带责任均有评论者自负。]
[不超过250字]

图片文章