url的c#加密解密

Encrypting   QueryStrings   with   .NET

CODE:

C#:

using System;
using System.IO;
using System.Xml;
using System.Text;
using System.Security.Cryptography;

public class Encryption64
{
    //private byte[] key = {};
    //private byte[] IV = {10, 20, 30, 40, 50, 60, 70, 80}; // it can be any byte value

    public static string Decrypt(string stringToDecrypt,
    string sEncryptionKey)
    {

        byte[] key = ...{ };
        byte[] IV = ...{ 10, 20, 30, 40, 50, 60, 70, 80 };
        byte[] inputByteArray = new byte[stringToDecrypt.Length];

        try
        {
            key = Encoding.UTF8.GetBytes(sEncryptionKey.Substring(0, 8));
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            inputByteArray = Convert.FromBase64String(stringToDecrypt);

            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key, IV), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();

            Encoding encoding = Encoding.UTF8;
            return encoding.GetString(ms.ToArray());
        }
        catch (System.Exception ex)
        {
            throw ex;
        }
    }

    public static string Encrypt(string stringToEncrypt,
    string sEncryptionKey)
    {

        byte[] key = ...{ };
        byte[] IV = ...{ 10, 20, 30, 40, 50, 60, 70, 80 };
        byte[] inputByteArray; //Convert.ToByte(stringToEncrypt.Length)

        try
        {
            key = Encoding.UTF8.GetBytes(sEncryptionKey.Substring(0, 8));
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            inputByteArray = Encoding.UTF8.GetBytes(stringToEncrypt);
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();

            return Convert.ToBase64String(ms.ToArray());
        }
        catch (System.Exception ex)
        {
            throw ex;
        }
    }
}

 

Default.aspx.cs

//加密URL

protected void Page_Load(object sender, EventArgs e)
    {
        string strValues = "
http://blog.csdn.net/slimboy123";
        string strEnURL = "Default2.aspx?url="
            + encryptQueryString(strValues);
        Response.Redirect(strEnURL);
    }

    public string encryptQueryString(string strQueryString)
    {
        return Encryption64.Encrypt(strQueryString, "!#$a54?3");
    }

Default2.aspx.cs

//解密URL

 

protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["url"] != null)
        {
            Response.Write(decryptQueryString(Request.QueryString["url"].Trim().Replace(" ","+")));
        }
    }

    public string decryptQueryString(string strQueryString)
    {
        return Encryption64.Decrypt(strQueryString, "!#$a54?3");
    }

posted @ 2009-04-21 15:51  会游泳dě鱼  阅读(547)  评论(0编辑  收藏  举报