程序被人偷。我已经把文件和数据库分开放了,但是求把求web.cofing加密的方法。

解决方案 »

  1.   

    可以对Web.config中保存的字符串使用MD5加密.
    这样在web.config中的串就都是乱码了.
    md5的加密解密程序如下:using System;
    using System.Text;
    using System.IO;
    using System.Security.Cryptography;namespace RentCarCredit.Class
    {
    /**************************************************************
    * 文件名称: Encrypt.cs
    * 空间名称: RMCIS.Class
    * 文件介绍: 此文件为最基本的字符串提供加密解密基类
    * 类成员: 名称 注  释
    *     Encrypt           加密基类
    * 记录: 日期 人员 注  释
    * 2003/06/20 陈颂雷 设计编制
    * *************************************************************/
    public class Encrypt
    {
    /*********************************************************
    * 类名称: Encrypt
    * 类介绍: 加密,解密基类
    * 字段成员: 名称 注  释
    * 方法成员: 名称 注  释
    * strEncrypt     字符串加密基类
    * strDecrypt     字符串解密基类
    * 记录: 日期 人员 注  释
    * 2003/06/23 陈颂雷 设计编制  
    * ********************************************************/ public static string strEncrypt( string strtext,string strkey) 
    {
    /*********************************************************
    * 过程名称: strEncrypt
    * 过程介绍: 字符串加密基类
    * 输入: 名称 注  释
    * strtext 加密目标字符串。
    *               strkey              密匙
    *                      strkey不能为中国字,长度大于等于8个字符。    
    * 返回: 名称 注  释
    * ms.ToArray()        返回加密后的字符串
    * Exception 程序异常信息
    * 记录: 日期 人员 注  释
    * 2003/06/23 陈颂雷 设计编制  
    * ********************************************************/
    Byte[] bykey=new Byte[]{};
    Byte[] byIV=new Byte[]{0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF};
    try
    {
    bykey=System.Text.Encoding.UTF8.GetBytes(strkey.Substring(0,8));
    DESCryptoServiceProvider des=new DESCryptoServiceProvider();
    Byte[] byinputArray = Encoding.UTF8.GetBytes(strtext);
    MemoryStream ms=new MemoryStream();
    CryptoStream cs=new CryptoStream(ms,des.CreateEncryptor(bykey,byIV),
    CryptoStreamMode.Write);
    cs.Write(byinputArray,0,byinputArray.Length);
    cs.FlushFinalBlock();
    return System.Convert.ToBase64String(ms.ToArray()); }
    catch (Exception e)
    {
    throw new Exception("06000:" + e.Message);
    }            
    }
    public static string strDecrypt(string strtext,string strkey)
    {
    /*********************************************************
    * 过程名称: strDecrypt
    * 过程介绍: 字符串解密基类
    * 输入: 名称 注  释
    * strtext 解密目标字符串。
    *               strkey              密匙
    *                      strkey不能为中国字,长度大于等于8个字符。    
    * 返回: 名称 注  释
    * ms.ToArray()        返回解密后的字符串
    * NouseException 解密不成功信息
    * 记录: 日期 人员 注  释
    * 2003/06/23 陈颂雷 设计编制  
    * ********************************************************/
    Byte[] bykey=new Byte[]{};
    Byte[] byIV=new Byte[]{0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF};
    Byte[] byInputArray=new Byte[strtext.Length];
    try
    {
    bykey=System.Text.Encoding.UTF8.GetBytes(strkey.Substring(0,8));
    DESCryptoServiceProvider des=new DESCryptoServiceProvider();
    byInputArray=System.Convert.FromBase64String(strtext);
    MemoryStream ms=new MemoryStream();
    CryptoStream cs=new CryptoStream(ms,des.CreateDecryptor(bykey,byIV),
    CryptoStreamMode.Write);
    cs.Write(byInputArray,0,byInputArray.Length);
    cs.FlushFinalBlock();
    System.Text.Encoding encoding=System.Text.Encoding.UTF8;
    return encoding.GetString(ms.ToArray());
    }
    catch(Exception)
    {
    throw new NouseException("解密不成功");
    }          
    }
    }
    /*加密调用例子
     * try
    {
       Response.Write(Encrypt.strEncrypt(this.txtEncrypt.Text,"12345678"));
    }
    catch (NouseException ede)
    {
    throw new NouseException(ede.Message);
    }
     * 
     * 解密调用例子
     *  * try
    {
       Response.Write(Encrypt.strDecrypt(this.txtEncrypt.Text,"12345678"));
    }
    catch (NouseException ede)
    {
    throw new NouseException(ede.Message);
    }
     * 
     */
    }
      

  2.   

    MD5加密还可以解密吗?怎么我看好像是用的DES加密解密的啊
      

  3.   

    理论上没有解不开的密.不过就是难度有多少罢了.而MD5加密是dotNet内置的加密算法.使用相对方便.也许也有DES的加密基类,我不太清楚,有那位高人知道,可以给说说,反正程序功能可以实现就可以了.
      

  4.   

    楼上的,md5是不可逆加密,des或者dsa加密都可以,不过密钥要保存好