我们把数据库连接信息放在Web.config中,怎样把它加密后再放入Web.config中,然后Web页面调用的时候再解密?代码怎么写?放在什么地方?(我用的是VB.net)

解决方案 »

  1.   

    如果真的能够下载到你的应用程序文件,那么只要打开你的dll就能看到解密密钥。不过dll和web.config等文件其实是被自动禁止下载的。
      

  2.   

    如果dll解密不是问题,那么你可以把参数编译入dll。
      

  3.   

    ms的那个什么店的有sample.它用的一个console的程序,load web.config的xml,然后加密,再save回去。调用的时候,有个connection类的static string CONN_STRING,掉到它里面的方法时,自动执行解密。
      也可以专门有个页面处理。
      要注意,那样web application等于要restart了
      

  4.   

    petshop不是一个很好的例子了吗,里面就有你说到的加密与解密
      

  5.   

    楼上说的方法比较常有哦!
    也有这种方法,也可以初始化的时候编辑以下web.config文件,并把密钥加入其中也可以的。
      

  6.   

    Web.config本身被加密程序就没法用了,但节点的数据是完全可以加密的。加密方法和加密其他文件一样。
      

  7.   

    using System;
    using System.Text;
    using System.Security.Cryptography; class dsacrypto_SignData {
     public static void Main(String[] args){
      //先要将字符串转换为字节数组,这与编码有关。
      String str = "this is a test.";
      byte[] bytes = Encoding.ASCII.GetBytes(str);
      //选择签名方式,有RSA和DSA
      DSACryptoServiceProvider dsac = new DSACryptoServiceProvider();
      byte[] sign = dsac.SignData(bytes);
      //sign便是出来的签名结果。  //下面是认证了
      DSACryptoServiceProvider dsac2 = new DSACryptoServiceProvider();
      dsac2.FromXmlString(dsac.ToXmlString(false));
      bool ver = dsac2.VerifyData(bytes, sign);
      if (ver) {
       Console.WriteLine("通过");
      } else {
       Console.WriteLine("不能通过");
      }
     }
     }
      

  8.   

    你可以不那个加密,拿出来的时候解一下就可以了
    public class EncryptString
    {
    //随机选8个字节既为密钥也为初始向量
    Byte[] byKey64={42, 16, 93, 156, 78, 4, 218, 32};
    Byte[] Iv64={55, 103, 246, 79, 36, 99, 167, 3};

    public EncryptString()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    /// <summary>
    /// 标准的DES加密
    /// </summary>
    /// <param name="str_Sql">标准的DES加密</param>
    public String Encrypt(String strText)
    {
    //Byte[] byKey = {};
    //Byte[] IV  = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};
    try
    {
    //byKey = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0, 8));
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    Byte[] inputByteArray  = Encoding.UTF8.GetBytes(strText);
    MemoryStream ms = new MemoryStream();
    CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey64, Iv64), CryptoStreamMode.Write);
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    cs.FlushFinalBlock();
    return Convert.ToBase64String(ms.ToArray());
    }
    catch(Exception ex)
    {
    return ex.Message;
    }
    }
    /// <summary>
    /// 标准的DES解密
    /// </summary>
    /// <param name="str_Sql">标准的DES解密</param>
    public String Decrypt(String strText)
    {
    //Byte[] byKey  = {};
    //Byte[] IV = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};
    Byte[] inputByteArray = new byte[strText.Length];
    try
    {
    //byKey = System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0, 8));
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    inputByteArray = Convert.FromBase64String(strText);
    MemoryStream  ms = new MemoryStream();
    CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey64, Iv64), CryptoStreamMode.Write);
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    cs.FlushFinalBlock();
    System.Text.Encoding encoding = System.Text.Encoding.UTF8;
    return encoding.GetString(ms.ToArray());
    }
    catch(Exception ex)
    {
    return ex.Message;
    }
    }
      

  9.   

    1.设计个加密和解密的算法(弄什么样的这个你自己说了算)
    2.把要加密的数据加密后写入WEB.CONFIG。
    3.把WEB.CONFIG是一个XML文件,可以读写(详细的方法去网上找吧)
    4.读出加密后Web.Config里的信息后在解密得到解密后的信息...
      

  10.   

    有没有VB.net的代码呢???
    大家帮忙想一想
      

  11.   

    web.config 是不能下载的,为什么要加密呢?