在开发项目中有许多数据需要我们进行加密解密操作,这里介绍几个加密解密的方法。

一:MD5加密

MD5加密是一种单向的加密算法,它只能加密,加密后不能进行逆向解密操作,常用于数字签名和加密用户密码。

下面利用C#实现MD5加密

(1)返回base64形式的加密数据

  1. private string MD5_Encrypt(string msg)
  2. {
  3. MD5 md5 = MD5.Create();
  4. byte[] data = Encoding.Default.GetBytes(msg); //待加密的字符串转成字节类型
  5. byte[] en_data = md5.ComputeHash(data, , data.Length);//加密
  6. return Convert.ToBase64String(en_data); //返回加密后数据的base64形式字符串
  7. }

(2)返回16进制形式的数据

  1. private string MD5_Encrypt(string msg)
  2. {
  3. MD5 md5 = MD5.Create();
  4. byte[] data = Encoding.Default.GetBytes(msg); //待加密的字符串转成字节类型
  5. byte[] en_data = md5.ComputeHash(data, , data.Length);//加密
  6. StringBuilder sb = new StringBuilder();
  7. for (int i = ; i < en_data.Length; i++)
  8. {
  9. sb.Append(en_data[i].ToString("X2"));
  10. }
  11. return sb.ToString();
  12. }

二:DES加密解密

DES加密算法是一种对称的加密算法,对称加密指:加密和解密用同一组的钥匙。相对的 非对称加密算法加密密匙用一组,解密密匙用另一组。

下面利用C#实现DES加密解密

DES加密

  1. private string DES_Encrypt(string msg,string key)
  2. {
  3. byte[] data = Encoding.Default.GetBytes(msg);//待加密的字符串转成字节类型
  4. DESCryptoServiceProvider des = new DESCryptoServiceProvider();
  5. byte[] rgbKey=ASCIIEncoding.ASCII.GetBytes(key.PadRight(,'a'));//密匙
  6. byte[] rgbIV = ASCIIEncoding.ASCII.GetBytes(key.PadRight(,'a'));//向量
  7. des.Key = rgbKey;//设置密匙
  8. des.IV = rgbIV; //设置初始化向量
  9. MemoryStream ms = new MemoryStream();
  10. CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);//定义加密转换流
  11. cs.Write(data, , data.Length); //加密数据写到内存流
  12. cs.FlushFinalBlock();
  13. return Convert.ToBase64String(ms.ToArray());//输出base64形式的加密字符串
  14. }

DES解密

  1. private string DES_Decrypt(string msg,string key)
  2. {
  3. byte[] data = Convert.FromBase64String(msg);
  4. DESCryptoServiceProvider des = new DESCryptoServiceProvider();
  5. byte[] rgbKey = ASCIIEncoding.ASCII.GetBytes(key.PadRight(, 'a'));//密匙
  6. byte[] rgbIV = ASCIIEncoding.ASCII.GetBytes(key.PadRight(, 'a'));//向量
  7. des.Key = rgbKey;//设置密匙
  8. des.IV = rgbIV; //设置初始化向量
  9. MemoryStream ms = new MemoryStream();
  10. CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
  11. cs.Write(data, , data.Length); //解密数据并写到内存流
  12. return Encoding.Default.GetString(ms.ToArray());//将解密后字节数组转换成字符串
  13. }

ASP.NET常用技术之加密解密的更多相关文章

  1. [C#] 常用工具类——加密解密类

    using System; using System.Configuration; using System.Collections.Generic; using System.Text; using ...

  2. ASP.NET中的DEC加密解密过程

    本文章分享自 青青果树园的博客,地址是:http://www.cnblogs.com/qqingmu/archive/2008/01/10/1034168.html 我们做网页时经常会遇到URL传输( ...

  3. ASP.NET 常用的字符串加密

    字符串常用的加密有三种 1.MD5加密,这个常用于密码,单向加密,不可解密,有些在线解密的可以解大部份,用代码不能实现,如果不想让人解密,加密后随便截取一段就好了: 2.Base64位加密,通常加密后 ...

  4. php字符串常用算法--字符串加密解密

    /** * 加密.解密字符串 * * @global string $db_hash * @global array $pwServer * @param $string 待处理字符串 * @para ...

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

    效果: 代码: using System; using System.Text; using System.IO; using System.Security.Cryptography; public ...

  6. C#,ASP.NET简单的MD5加密,解密

    简单的MD5加密 首先要有一个加解密的规则  就是key 代码如下 // 创建Key public string GenerateKey() { DESCryptoServiceProvider de ...

  7. Asp.net,C# 纯数字加密解密字符串

    也就是说加密后的数据不再是:N8lAaHMFtSAQgaf3+RUFng== 希望encryptedString是"1203877893704809384098328409234923840 ...

  8. ASP.NET常用技术之Cookie

    cookie是一小段的文本信息(多数浏览器限制cookie最大字节数为4096字节),在浏览器和服务器之间随用户请求而传递(用户访问网站,没有设置cookie限制范围情况下,无论请求那个页面,浏览器和 ...

  9. Unicode编码转换, MD5加密,URL16进制加密解密

    一.站长网址:http://www.msxindl.com/ 1.Unicode与中文互转 16进制Unicode编码转换.还原   :http://www.msxindl.com/tools/uni ...

随机推荐

  1. c/c++关于内存分配的知识(非常详细的比较,且VirtualAlloc分配内直接在进程的地址空间中保留一快内存)

    一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) — 一 ...

  2. Magician - hdu 5316 (区间查询合并)

    题意:有一个区间,然后有两种操作 1. 把a处的值改为b 0,查询区间ab的子序列的最大和,这个比较特殊,子序列里面相邻的数要有不同的奇偶性 ***************************** ...

  3. open Session In View模式

    首先看图说话: ****Open Session In View模式的主要思想是:在用户的每一次请求过程始终保持一个Session对象打开着*** 接下来就是代码: +++++++++++++++++ ...

  4. NSURLConnection获取数据

    - (void)loadDataFromUrl { NSURL* url = [NSURL URLWithString:@"http://m.weather.com.cn/data/1011 ...

  5. 纯CSS3实现超立体的3D图片侧翻倾斜效果

    看到网友分享的一款CSS3 3D图片侧翻倾斜特效,觉得效果非常棒,其实话说回来,这玩意儿的实现真的非常简单,主要是创意不错.先来看看效果图.那么接下来我们分析一下源码吧,显示html代码,非常简单: ...

  6. yii CGridView colum 链接

    默认显示的内容是没有链接的,现在想加链接,效果图如下 代码位置就在columns数组里,直接上代码说明 $this->widget('zii.widgets.grid.CGridView', a ...

  7. ServletContextListener 解析用法

    ServletContext 被 Servlet 程序用来与 Web 容器通信.例如写日志,转发请求.每一个 Web 应用程序含有一个Context,被Web应用内的各个程序共享.因为Context可 ...

  8. SparseArray HashMap 稀疏数组 二分法

    简介 HashMap是java里比较常用的一个集合类,我们常用其来缓存一些处理后的结果,但是在Android项目中,Eclipse却给出了一个 performance 警告.意思就是说用SparseA ...

  9. noip 2009 道路游戏

    /*10分钟的暴力 意料之中的5分..*/ #include<iostream> #include<cstdio> #include<cstring> #defin ...

  10. 新浪微博开放平台OAuth授权解决方案(含代码)

    前几日一位朋友项目中需要使用新浪微博的接口,故和这位朋友一同研究了新浪微博开放平台上面所提供的资料,首先要使用这些接口是需要用户登录并且授权的,新浪微博开放平台其实是提供两种授权方式的,第一种是:OA ...