c# - 如何在C#中加密/解密url

标签 c# asp.net url-rewriting

我有一个 URL www.site-address/site-page/page1.aspx?username=deepu&password=deepu 我怎样才能将 URL 更改为 www.site-address/site-page/page1.aspx?username=232322323232&password=2323232322323 即我想加密我通过 URL 传递的字段请帮助我使用 .net 在 C# 中加密和解密 URL,现在我正在使用 response.redirect 并将这些值作为查询字符串传递....请帮助... .

最佳答案

它不会以你想要的方式工作,但是可以通过下面提到的方式进行加密

加密页面:

string id1 = "id1";

Response.Redirect("decryptionPage.aspx?id1=" + HttpUtility.UrlEncode(Encrypt(id1)));

private string Encrypt(string stringToEncrypt)
{
        byte[] inputByteArray = Encoding.UTF8.GetBytes(stringToEncrypt);
        byte[] rgbIV = { 0x21, 0x43, 0x56, 0x87, 0x10, 0xfd, 0xea, 0x1c };
        byte[] key = { };
        try
        {
            key = System.Text.Encoding.UTF8.GetBytes("A0D1nX0Q");
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, rgbIV), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();
            return Convert.ToBase64String(ms.ToArray());
        }
        catch (Exception e)
        {
            return e.Message;
        }
}

解密页面:

string getId1 = Convert.ToString(Request.QueryString["id1"]);
var qs = Decrypt(HttpUtility.UrlDecode(getId1));
private string Decrypt(string EncryptedText)
{
        byte[] inputByteArray = new byte[EncryptedText.Length + 1];
        byte[] rgbIV = { 0x21, 0x43, 0x56, 0x87, 0x10, 0xfd, 0xea, 0x1c };
        byte[] key = { };

        try
        {
            key = System.Text.Encoding.UTF8.GetBytes("A0D1nX0Q");
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            inputByteArray = Convert.FromBase64String(EncryptedText);
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key, rgbIV), 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 e)
        {
            return e.Message;
        }
}

关于c# - 如何在C#中加密/解密url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2966255/

相关文章:

c# - 从 C# 运行 Powershell 脚本

c# - Silverlight GetElementById IE6

javascript - ASP.NET iframe 有时不更新

asp.net - 如何开始使用 EntityFramework 4.1(或当前为 4.3)

.htaccess - HTACCESS 重写的 URL 正在重定向查询参数

c# - 如何从同一解决方案中的 4.6.1 项目引用多目标 .NET Core 类库?

C# Mongodb 驱动程序 - 带有方法调用的表达式不起作用

c# - 如何在线程上调用泛型方法?

apache - .htaccess 用分页重写类别

apache - 如何使用 .htaccess 规则将 .php 重写为 .html?