http://localhost/Test/UserManage/Default.aspx?id=3036657c-277c-476c-982d-75f154e09050如上,请问如何将页面传递的参数id进行隐藏或加密,以使客户端看不到传递的参数值?

解决方案 »

  1.   

    post提交传值:string id=request["id"].tostring();接收:string id=request.form.get("id").tostring();
      

  2.   

    你不想让客户端看见么就用Session传值啊。或者自定义类来传值
      

  3.   

    //密钥
        Byte[] Iv64 ={ 66, 55, 22, 44, 55, 66, 77, 85 };
        Byte[] byKey64 ={ 10, 20, 30, 40, 13, 60, 70, 80 };//调用时候///Response.Redirect("***.aspx?ID="+ytEncrypt(name+","+pass));
        //加密
        public string ytEncrypt(string strText)
        {
            try
            {
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                Byte[] inputByteArray = Encoding.UTF8.GetBytes(strText);
                MemoryStream ms = new MemoryStream();
                string strTest = des.CreateEncryptor(byKey64, Iv64).ToString ();
                CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey64, Iv64), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                string stTest1 = Convert.ToBase64String(ms.ToArray());
                return Convert.ToBase64String(ms.ToArray());
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }    //解密调用string deString = ytDecrypt(request["ID"]);
        //解密(解密密钥和加密密钥是同一个密钥)
        public string ytDecrypt(string strText)
        {
            if (IsNullorEmpty(strText))
            {
                return "";
            }
            Byte[] inputByteArray = new byte[strText.Length];
            try
            {
                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;
            }
        }
    好像有缺陷的,感觉不太好用,可以考虑用其他方式传值的
      

  4.   

    这哪是加密啊
    这是UNIQUE的形式
    数据库好好学习啊
    o(∩_∩)o...
    再说ID要加密干嘛啊
    多此一举
      

  5.   

    楼主的id用的guid类型可以不用加密了!
      

  6.   

    直接URL重些不就什么也看不见了?
      

  7.   

    回复cteddy :id只是举个例子,因为页面上有很多敏感信息不能在客户端显示,所以请大侠们继续关注,最好提供些已经可行的解决方案,非常感谢!