【问题标题】:How to Encrypt Page Request QueryString in ASP.NET? [closed]如何在 ASP.NET 中加密页面请求查询字符串? [关闭]
【发布时间】:2013-12-11 03:33:57
【问题描述】:

我有 2 个两页。 MainPage.aspx 和 DealerPage.aspx

我从 MainPage 向 DealerPage 发送一个 Request QueryString,但我希望 QueryString 在传递到 DealerPage 时被加密

在 MainPage.aspx (Javascript) 中

              google.maps.event.addListener(marker2, "click", function (e) {

              infoWindow2.setContent(data2.description);
              infoWindow2.open(map2, marker2);
              window.location = "DealerPage.aspx?DI=" + data2.plate;
              icon: InitIcon


              });

例如

             http:localhost/DealerPage.aspx?DI=485180610

在 DealerPage.aspx.cs 我得到并使用 QueryString。

             private string tankerPlate = "";

             protected void Page_Load(object sender, EventArgs e)

            {

             this.truckPlate = this.Page.Request.QueryString["DI"];

             }

我不想像 DI=485180610 这样显示。

我想要 DI=加密和解密以使用下一页。

【问题讨论】:

标签: c# asp.net encryption


【解决方案1】:

试试这个

public static class Crypt
{
    // Must be random
    private static readonly byte[] key = new byte[24] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4 };

    public static string Encrypt(string input)
    {
        byte[] inputArray = UTF8Encoding.UTF8.GetBytes(input);
        TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();
        tripleDES.GenerateKey();
        tripleDES.Key = key;
        tripleDES.Mode = CipherMode.ECB;
        tripleDES.Padding = PaddingMode.PKCS7;
        ICryptoTransform cTransform = tripleDES.CreateEncryptor();
        byte[] resultArray = cTransform.TransformFinalBlock(inputArray, 0, inputArray.Length);
        tripleDES.Clear();
        return Convert.ToBase64String(resultArray, 0, resultArray.Length);
    }

    public static string Decrypt(string input)
    {
        byte[] inputArray = Convert.FromBase64String(input);
        TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();
        tripleDES.Key = key;
        tripleDES.Mode = CipherMode.ECB;
        tripleDES.Padding = PaddingMode.PKCS7;
        ICryptoTransform cTransform = tripleDES.CreateDecryptor();
        byte[] resultArray = cTransform.TransformFinalBlock(inputArray, 0, inputArray.Length);
        tripleDES.Clear();
        return UTF8Encoding.UTF8.GetString(resultArray);
    }
}

或者试试thisCodeProjectArticle.

【讨论】:

猜你喜欢
  • 2013-02-15
  • 2010-09-19
  • 2011-12-03
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 2017-02-11
  • 1970-01-01
相关资源
最近更新 更多