ASP.NET - URL中参数加密解密操作

效果:

代码:

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

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write("<a href = " + "http://www.baidu.com?" + Encode("id=12345&name=jack", "jiamikey") + ">" + "http://www.baidu.com?" + Encode("id=12345&name=jack", "jiamikey") + "</a>");

        Response.Write("<BR/>------------------------------------------------------<BR/>");

        Response.Write("<a href = " + "http://www.baidu.com?" + Encode(Encode("id=12345&name=jack", "jiamikey"), "jiamikey") + ">" + "http://www.baidu.com?id=12345&name=jack" + "</a>");

    }

    /// <summary>
    /// 加密
    /// </summary>
    /// <param name="str"></param>
    /// <param name="key"></param>
    /// <returns></returns>
    public static string Encode(string str, string key)
    {
        DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
        provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
        provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
        byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(str);
        MemoryStream stream = new MemoryStream();
        CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
        stream2.Write(bytes, 0, bytes.Length);
        stream2.FlushFinalBlock();
        StringBuilder builder = new StringBuilder();
        foreach (byte num in stream.ToArray())
        {
            builder.AppendFormat("{0:X2}", num);
        }
        stream.Close();
        return builder.ToString();
    }

    /// <summary>
    /// Des 解密 GB2312
    /// </summary>
    /// <param name="str">Desc string</param>
    /// <param name="key">Key ,必须为8位 </param>
    /// <returns></returns>
    public static string Decode(string str, string key)
    {
        DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
        provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
        provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
        byte[] buffer = new byte[str.Length / 2];
        for (int i = 0; i < (str.Length / 2); i++)
        {
            int num2 = Convert.ToInt32(str.Substring(i * 2, 2), 0x10);
            buffer[i] = (byte)num2;
        }
        MemoryStream stream = new MemoryStream();
        CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
        stream2.Write(buffer, 0, buffer.Length);
        stream2.FlushFinalBlock();
        stream.Close();
        return Encoding.GetEncoding("GB2312").GetString(stream.ToArray());
    }
}
时间: 2024-11-08 22:15:23

ASP.NET - URL中参数加密解密操作的相关文章

JS中的加密解密操作,以及对应的C#中的加密解密

JS: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>RSA Login Test</title> <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> <scri

利用PBFunc在Powerbuilder中进行国密SM4的加密解密操作

利用PBFunc的n_pbfunc_cryp对象可以很方便的进行SM4的加密解密操作,其中ECB不需要向量IV,其它模式需要IV 代码下载地址:https://download.csdn.net/download/my_aa/12309197 SM4加密: 1 //可用 http://aks.jd.com/tools/sec/ 对比结果 2 string ls_data 3 ls_data = sle_1.Text//要加密的数据 4 string ls_key 5 ls_key = sle_k

.Net中的加密解密

返回博客列表 转 .Net中的加密解密 李朝强 发布时间: 2015/11/23 12:55 阅读: 33 收藏: 3 点赞: 0 评论: 0 在一些比较重要的应用场景中,通过网络传递数据需要进行加密以保证安全.本文将简单地介绍了加密解密的一些概念,以及相关的数字签名.证书,最后介绍了如何在.NET中对数据进行对称加密和解密. 加密和解密 说 到加密,可能大家最熟悉的就是MD5了,记得几年前我刚开始接触Web编程的时候,研究的一个ASP论坛程序,它的用户密码就是采用的MD5进行加密. MD5实际

C#中RSA加密解密和签名与验证的实现

RSA加密算法是一种非对称加密算法.在公钥加密标准和电子商业中RSA被广泛使用.RSA是1977年由罗纳德•李维斯特(Ron Rivest).阿迪•萨莫尔(Adi Shamir)和伦纳德•阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院工作.RSA就是他们三人姓氏开头字母拼在一起组成的..Net的推出,我们能够利用.Net Framework中的类提供的加密服务来保证数据安全.目前应用较为广泛的加密方法是使用RSA算法进行加密.在.Net Framework中与R

【教训】 form表单提交时,action url中参数无效

今天提交一个表单,内容参考如下: <form action="add.php?a=123&b=456">     <input type="hidden" name='user_id' value="46" />     <input type="hidden" name='user_name' value="snsgou" />     ...     <

(教训) form表单提交时,action url中参数无效

今天提交一个表单,内容参考如下: <form action="add.php?a=123&b=456">    <input type="hidden" name='user_id' value="46" />    <input type="hidden" name='user_name' value="snsgou" />    ...    <inpu

OpenSSL 中 RSA 加密解密实现源码分析

1.RSA 公钥和私钥的组成,以及加密和解密的公式: 2.模指数运算: 先做指数运算,再做模运算,如 5^3 mod 7 = 125 mod 7 = 6 3.RSA加密算法流程: 选择一对不同的.并且足够大的素数 p 和 q 计算 n = p * q 计算欧拉函数 f(n) = (p-1) * (q-1),p 和 q 需要保密 寻找与 f(n) 互质的数 e,并且 1 < e < f(n) 计算 d,使得 d * e ≡ 1 mod f(n) 公钥 KU = (e , n)   私钥 KR =

OpenSSL 中 RSA 加密解密实现源代码分析

1.RSA 公钥和私钥的组成.以及加密和解密的公式: 2.模指数运算: 先做指数运算,再做模运算.如 5^3 mod 7 = 125 mod 7 = 6 3.RSA加密算法流程: 选择一对不同的.而且足够大的素数 p 和 q 计算 n = p * q 计算欧拉函数 f(n) = (p-1) * (q-1),p 和 q 须要保密 寻找与 f(n) 互质的数 e.而且 1 < e < f(n) 计算 d,使得 d * e ≡ 1 mod f(n) 公钥 KU = (e , n)   私钥 KR =

php中des加密解密&#160;匹配C#des加密解密&#160;对称加密

原文:php中des加密解密 匹配C#des加密解密 对称加密 网上找来的 php des加密解密 完全匹配上一篇C# 字符串加密解密函数  可以用于C#和php通信 对数据进行加密,其中$key 是加密密钥,$iv 是偏移量,默认偏移量和加密密匙是一样的, <?php class DES { var $key; var $iv; //偏移量 function DES( $key, $iv=0) { //key长度8例如:1234abcd $this->key = $key; if( $iv