ASP.NET常用技术之加密解密
在开发项目中有许多数据需要我们进行加密解密操作,这里介绍几个加密解密的方法。
一: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常用技术之加密解密的更多相关文章
- [C#] 常用工具类——加密解密类
using System; using System.Configuration; using System.Collections.Generic; using System.Text; using ...
- ASP.NET中的DEC加密解密过程
本文章分享自 青青果树园的博客,地址是:http://www.cnblogs.com/qqingmu/archive/2008/01/10/1034168.html 我们做网页时经常会遇到URL传输( ...
- ASP.NET 常用的字符串加密
字符串常用的加密有三种 1.MD5加密,这个常用于密码,单向加密,不可解密,有些在线解密的可以解大部份,用代码不能实现,如果不想让人解密,加密后随便截取一段就好了: 2.Base64位加密,通常加密后 ...
- php字符串常用算法--字符串加密解密
/** * 加密.解密字符串 * * @global string $db_hash * @global array $pwServer * @param $string 待处理字符串 * @para ...
- ASP.NET - URL中参数加密解密操作
效果: 代码: using System; using System.Text; using System.IO; using System.Security.Cryptography; public ...
- C#,ASP.NET简单的MD5加密,解密
简单的MD5加密 首先要有一个加解密的规则 就是key 代码如下 // 创建Key public string GenerateKey() { DESCryptoServiceProvider de ...
- Asp.net,C# 纯数字加密解密字符串
也就是说加密后的数据不再是:N8lAaHMFtSAQgaf3+RUFng== 希望encryptedString是"1203877893704809384098328409234923840 ...
- ASP.NET常用技术之Cookie
cookie是一小段的文本信息(多数浏览器限制cookie最大字节数为4096字节),在浏览器和服务器之间随用户请求而传递(用户访问网站,没有设置cookie限制范围情况下,无论请求那个页面,浏览器和 ...
- Unicode编码转换, MD5加密,URL16进制加密解密
一.站长网址:http://www.msxindl.com/ 1.Unicode与中文互转 16进制Unicode编码转换.还原 :http://www.msxindl.com/tools/uni ...
随机推荐
- 第三代搜索推出网民评价系统,seo末日还会远吗?
昨天的360搜索可谓风光无限,两大搜索新品同日上线,至今360导航页面依旧飘荡着两者的身影,但是不少站长从此却是忧心忡忡,seo末日是否真的要到来了?笔者想起数日前写的一篇博文:seo末日言论频频来袭 ...
- Hadoop InputFormat
Hadoop可以处理不同数据格式(数据源)的数据,从文本文件到(非)关系型数据库,这很大程度上得益于Hadoop InputFormat的可扩展性设计,InputFormat层次结构图如下:
- Delphi自定义消息应用及delphi托盘实现
Delphi自定义消息应用及delphi托盘实现interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Co ...
- Java习惯用法总结
在微博中看到的一个不错的帖子,总结的很详细,拷贝过来,一是为了方便自己查阅,也能和大家一起共享,后面有原文的链接地址: 在Java编程中,有些知识 并不能仅通过语言规范或者标准API文档就能学到的.在 ...
- Aggregating tests in suites
我们可以将来自不同类的test组成一个test suite.在JUnit 3.8.x我们使用 static Test suite()方法,但是在JUnit4我们使用在类前面加上注释 @RunWith( ...
- ANT打包 小实例
ANT打包 package src; public class Hello { /** * @param args */ public static void main(String[] a ...
- rpm与dpkg yum与apt-get详解
由于自由软体的蓬勃发展,加上大型Unix-Like 主机的强大效能,让很多软体开发者将他们的软体使用Tarball 来释出. 后来Linux 发展起来后,由一些企业或社群将这些软体收集起来制作成为di ...
- tcp/ip状态图
开启一个连接需要三次握手,终止一个tcp连接需要4次握手,对应的客户端和服务器连接状态也随之而改变. 1.服务器出现大量的CLOSE_WAIT? 通常,CLOSE_WAIT 状态在服务器停留时间很短, ...
- input上传文件显示图片缩略图
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Resizable 2th click not working
here's a simple solution. just destroy the resizable function, then rebuild it. try { $("#div& ...