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

一: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. C51指针类型和存储区的关系详解

    一.存储类型与存储区关系 data     --->    可寻址片内ram bdata   --->    可位寻址的片内ram idata    --->    可寻址片内ram ...

  2. 处理鼠标响应事件(最简单控件 good)

    贴下代码: #ifndef MYWIDGET_H#define MYWIDGET_H #include <QWidget>#include <QtGui>#include &l ...

  3. Convert Sorted Array to Binary Search Tree——LeetCode

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 题目 ...

  4. Android的JNI开发

    变量的定义 int i; typedef int x;//定义一个int x数据类型 x a=10; printf("size=%d",sizeof(i));//获取int类型长度 ...

  5. bzoj2730 [HNOI2012]矿场搭建 (UVAlive5135 Mining Your Own Business)

    2730: [HNOI2012]矿场搭建 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1147  Solved: 528[Submit][Statu ...

  6. [Java] JavaMail 查询邮件

    上两篇提到如何发送邮件:JavaMail 发送 html 格式.带附件的邮件, JavaMail 简单案例.本文再演示下,如何读取邮箱上的邮件. 邮件内容的数据格式种类比较多,用户直接阅读邮件比较常见 ...

  7. [LeetCode] Word Break II 解题思路

    Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each ...

  8. linux获取CPU温度

    Centos系列 1 yum install lm_sensors 2 sensors-detect 3 sensors Ubuntu系列(多了service module-init-tools st ...

  9. oracle查询和断开用户session

    select sid,serial#,username from v$session where username='user_name';alter system kill session 'sid ...

  10. jquery 定时器

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...