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 ...
随机推荐
- 【Android】listview优化
http://www.cnblogs.com/over140/archive/2011/03/23/1991100.html http://blog.sina.com.cn/s/blog_5fc933 ...
- mongodb教程
http://sheperd.blog.163.com/blog/static/19525511920119111149046/ http://www.cnblogs.com/oec2003/arch ...
- ChatCell
import UIKit let chatCellHeight: CGFloat = 72 let chatCellInsetLeft = chatCellHeight + 8 class Chat ...
- 【转】linux 原子整数操作详解
原文网址:http://blog.csdn.net/hunanchenxingyu/article/details/8994379 printk(“%d\n”,atomic_read(&v)) ...
- windows7中的“mklink命令” 转
从 Vista 以后,微软将用户文件和用户的软件配置( AppData ) 明确划分开,并且全部存放在使用者的用户目录下. Linux早已这样做了,并且在Linux中可将 home 挂载为独立分区,而 ...
- 一个linux下socket编程的例子,client连server
关于socket编程,以下文章写得比较好:http://www.cnblogs.com/xudong-bupt/archive/2013/12/29/3483059.html 1. accept()函 ...
- unittest笔记
学习资料: 官网: https://docs.python.org/2.7/library/unittest.html IBM Python自动单元测试框架: http://www.ibm.com/d ...
- java笔记12之面向对象初始
1 概述 类:是一组相关的属性和行为的集合.是一个抽象的概念. 对象:是该类事物的具体表现形式.具体存在的个体. (1)面向对象思想 面向对象是基于面向过程的编程思想. ...
- C# Dictionary 字典
C#中的Dictionary字典类介绍 关键字:C# Dictionary 字典 作者:txw1958原文:http://www.cnblogs.com/txw1958/archive/2012/ ...
- floor() 和 ceil()函数
在C语言的库函数中,floor函数的语法例如以下: #include <math.h> double floor( double arg ); 功能: 函数返回參数不大于arg的最大整数. ...