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

一:MD5加密

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

下面利用C#实现MD5加密

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

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

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

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

二:DES加密解密

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

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

DES加密

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

DES解密

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

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. 开源src镜像

    开源src镜像: http://download.savannah.gnu.org/releases/

  2. (转载)PHP array_slice() 函数

    (转载)http://www.w3school.com.cn/php/func_array_slice.asp PHP Array 函数 定义和用法 array_slice() 函数在数组中根据条件取 ...

  3. SQL Server中的STUFF函数的使用

    STUFF ( character_expression , start , length ,character_expression ) 作用 删除指定长度的字符,并在指定的起点处插入另一组字符. ...

  4. python3、selenium、autoit3,通过flash控件上传文件

    autoit.au3 #include <Constants.au3> WinWait(); //暂停执行脚本,直到上传对话框出现 WinActive("打开") Wi ...

  5. <转>libjpeg解码内存中的jpeg数据

    转自http://my.unix-center.net/~Simon_fu/?p=565 熟悉libjpeg的朋友都知道libjpeg是一个开源的库.Linux和Android都是用libjpeg来 ...

  6. 解决魅族手机连接win7连不上

    折腾了好半天,win7就是连接不了魅族手机....我搞andorid开发的 连接不上 调个毛程序啊. 最后解决了 新建此文件即可.文件内容更为  0x2a45关闭即可. 来自为知笔记(Wiz)

  7. XBox360自制系统的更新(Update)

    升级和更新 升级(Upgrade):从Windows XP到Windows 10,这叫升级,不叫更新.XBox360升级失败的话,后果可能会比较严重,直接就无法开机了. 更新(Update):在Win ...

  8. 你不知道的关于计算机大师 Dijkstra 的事情

    Dijkstra 的全名叫 Edsger Wybe Dijkstra(艾兹赫尔·韦伯·戴克斯特拉).大部分中国程序员如果能记住这个名字是因为学过计算最短路径的「Dijkstra 算法」,然而大部分人都 ...

  9. springMVC之本地化和国际化

    spring框架的大部分都支持国际化,就像springMVC一样.DispatcherServlet使你能够动态的通过客户端的本地语言进行配置.这是通过LocaleResolver完成的.   当一个 ...

  10. 【mac开发.NET】No installed provisioning profiles match the installed iOS signing identities

    编译错误提示 /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets: Er ...