在ASP.NET 中如何给地址栏加密了!!希望各位高手援助!!

解决方案 »

  1.   

    为什么要用链接来传递参数呢?你既然用的asp.net,在后台就将参数处理了啊,比如用session、全局变量,甚至在数据库里面专门建个表来处理,很多方法的
      

  2.   

     不用啊, URL重写下, 伪装动态链接为静态, 这样就安全了, 不用加密链接, URL重写,
      如果你不会,在百度上搜索下,看看就应该明白了 ,,“URL重写”
      

  3.   

    你的意思再后台用
    url=aaa.aspx?name="+server.UrlEncode('要加密的字符串')
    response.Redirect(url);
    是不是用这个方法呀
      

  4.   

    urlrewriter
    参数加密如md5,sha等
    加密方法可用des等,还可使用HttpUtility.UrlEncode编码 
    public string SHA1(string source) 

        return FormsAuthentication.HashPasswordForStoringInConfigFile(source, "SHA1"); 

    public string MD5(string source) 

        return FormsAuthentication.HashPasswordForStoringInConfigFile(source, "MD5");; 

    public string Encode(string data) 

        byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); 
        byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);     DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider(); 
        int i = cryptoProvider.KeySize; 
        MemoryStream ms = new MemoryStream(); 
        CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);     StreamWriter sw = new StreamWriter(cst); 
        sw.Write(data); 
        sw.Flush(); 
        cst.FlushFinalBlock(); 
        sw.Flush(); 
        return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length); } public string Decode(string data) 

        byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); 
        byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);     byte[] byEnc; 
        try 
        { 
            byEnc = Convert.FromBase64String(data); 
        } 
        catch 
        { 
            return null; 
        }     DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider(); 
        MemoryStream ms = new MemoryStream(byEnc); 
        CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read); 
        StreamReader sr = new StreamReader(cst); 
        return sr.ReadToEnd(); 

    using System.Security.Cryptography; 
    ... 
    public string Encode(string data) 

    byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); 
    byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); 
    DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider(); 
    int i = cryptoProvider.KeySize; 
    MemoryStream ms = new MemoryStream(); 
    CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write); 
    StreamWriter sw = new StreamWriter(cst); 
    sw.Write(data); 
    sw.Flush(); 
    cst.FlushFinalBlock(); 
    sw.Flush(); 
    return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length); 

    public string Decode(string data) 

    byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); 
    byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); 
    byte[] byEnc; 
    try 

    byEnc = Convert.FromBase64String(data); 

    catch 

    return null; 

    DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider(); 
    MemoryStream ms = new MemoryStream(byEnc); 
    CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read); 
    StreamReader sr = new StreamReader(cst); 
    return sr.ReadToEnd(); 
    } private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; 
    public static string EncryptDES(string encryptString, string encryptKey) 

        try 
        { 
            byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); 
            byte[] rgbIV = Keys; 
            byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); 
            DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider(); 
            MemoryStream mStream = new MemoryStream(); 
            CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); 
            cStream.Write(inputByteArray, 0, inputByteArray.Length); 
            cStream.FlushFinalBlock(); 
            return Convert.ToBase64String(mStream.ToArray()); 
        } 
        catch 
        { 
            return encryptString; 
        } 
    } public static string DecryptDES(string decryptString, string decryptKey) 

        try 
        { 
            byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey); 
            byte[] rgbIV = Keys; 
            byte[] inputByteArray = Convert.FromBase64String(decryptString); 
            DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider(); 
            MemoryStream mStream = new MemoryStream(); 
            CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); 
            cStream.Write(inputByteArray, 0, inputByteArray.Length); 
            cStream.FlushFinalBlock(); 
            return Encoding.UTF8.GetString(mStream.ToArray()); 
        } 
        catch 
        { 
            return decryptString; 
        } 
    }  
    http://topic.csdn.net/u/20090910/23/3a55713e-b44e-475b-9d83-b5485e093653.html
      

  5.   

    比如说你想向另外一个页面传递一个参数name=abc,可以用session来传递这个参数,这样在页面的地址栏是看不到的,也就不存在需要加密的问题了啊,比如
    a.aspx.cs:
    session["name"] = "abc";b.aspx.cs:
    string s = session["name"]
      

  6.   

    seession  cookies 都可以 恩= =