Asp.Net教程,WinForm教程,Asp.Net MVC,vs2008教程,vs2010教程,Silverlight技术,源码下载,Asp.Net视频教程
全站热门标签
vs2010 Silverlight 存储过程 水晶报表 ADO.NET JavaScript LINQ AjaxPro DataGridView 面向对象 Extjs GridView XML DevExpress HTML教程 Oracle jQuery 分页 GDI+ Visual C++2010 MySQL Office2010 WPF MVC Dojo WCF4.0 VB.NET Sql2005 textbox cookie WCF WinForm Discuz!NT SQL经典语句 T-SQL checkbox ASPxGridView F# asp.net SQL VS2008新特性 DropDownList Access TreeView Ajax VS2008 页面执行时间 Flex 字符串 回调 VB2005 DataSet C#时间 ASP.NET性能优化 用户在线检测 动画
尚未分类 LINQ教程 Enterprise技术 性能优化/调试 水晶报表与打印安全与加密 图形图像 文件处理 基础教程 Web Services 内置对象 控件示例 正则表达式\采集 ADO.NET 缓存\泛型\线程 XML技术 Url重写\静态页 vs2008综合教程
当前位置: 主页 > ASP.NET教程 > 安全与加密 >

Md5 加密与解密

时间:2010-05-09 09:27来源: 作者:admin 点击:

using System.Security.Cryptography;
using   System.IO;
using   System.Text;

///MD5加密
   public string MD5Encrypt(string   pToEncrypt,   string   sKey)
   {
    DESCryptoServiceProvider   des   =   new   DESCryptoServiceProvider();
    byte[]   inputByteArray   =   Encoding.Default.GetBytes(pToEncrypt);
    des.Key   =   ASCIIEncoding.ASCII.GetBytes(sKey);
    des.IV   =   ASCIIEncoding.ASCII.GetBytes(sKey);
    MemoryStream   ms   =   new   MemoryStream();
    CryptoStream   cs   =   new   CryptoStream(ms,   des.CreateEncryptor(),CryptoStreamMode.Write);
    cs.Write(inputByteArray,   0,   inputByteArray.Length);
    cs.FlushFinalBlock();
    StringBuilder   ret   =   new   StringBuilder();
    foreach(byte   b   in   ms.ToArray())
    {
     ret.AppendFormat("{0:X2}",   b);
    }
    ret.ToString();
    return   ret.ToString();


   }

   ///MD5解密
   public string MD5Decrypt(string   pToDecrypt,   string   sKey)
   {
    DESCryptoServiceProvider   des   =   new   DESCryptoServiceProvider();

    byte[]   inputByteArray   =   new   byte[pToDecrypt.Length   /   2];
    for(int   x   =   0;   x   <   pToDecrypt.Length   /   2;   x++)
    {
     int   i   =   (Convert.ToInt32(pToDecrypt.Substring(x   *   2,   2),   16));
     inputByteArray[x]   =   (byte)i;
    }

    des.Key   =   ASCIIEncoding.ASCII.GetBytes(sKey);
    des.IV   =   ASCIIEncoding.ASCII.GetBytes(sKey);
    MemoryStream   ms   =   new   MemoryStream();
    CryptoStream   cs   =   new   CryptoStream(ms,   des.CreateDecryptor(),CryptoStreamMode.Write);
    cs.Write(inputByteArray,   0,   inputByteArray.Length);
    cs.FlushFinalBlock();

    StringBuilder   ret   =   new   StringBuilder();
            
    return   System.Text.Encoding.Default.GetString(ms.ToArray());
   }

 

 

 

using System;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
class DES
{
// 创建Key
public string GenerateKey()
{
DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
}
// 加密字符串
public string EncryptString(string sInputString, string sKey)
{
byte [] data = Encoding.UTF8.GetBytes(sInputString);
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateEncryptor();
byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return BitConverter.ToString(result);
}
// 解密字符串
public string DecryptString(string sInputString, string sKey)
{
string [] sInput = sInputString.Split("-".ToCharArray());
byte [] data = new byte[sInput.Length];
for(int i = 0; i < sInput.Length; i++)
{
data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber);
}
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateDecryptor();
byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return Encoding.UTF8.GetString(result);
}
}
class Test
{
static void Main()
{
DES des = new DES();
string key = des.GenerateKey();
string s0 = "中国软件 - csdn.net";
string s1 = des.EncryptString(s0, key);
string s2 = des.DecryptString(s1, key);
Console.WriteLine("原串: [{0}]", s0);
Console.WriteLine("加密: [{0}]", s1);
Console.WriteLine("解密: [{0}]", s2);
}
}
/* 程序输出:
原串: [中国软件 - csdn.net]
加密: [E8-30-D0-F2-2F-66-52-14-45-9A-DC-C5-85-E7-62-9B-AD-B7-82-CF-A8-0A-59-77]
解密: [中国软件 - csdn.net]
*/

(责任编辑:admin)
Tags:加密 MD5
责任编辑:admin
返回顶部
------分隔线----------------------------
推荐内容
骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价 骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价
  • ASP.NET中散列加密密码

    private void LoginButton_Click(object sender,System.EventArgs e) { String sql=St...

  • ASP.NET程序如何防止被注入(整站通用)

    防止sql注入,通常一个一个文件修改不仅麻烦而且还有漏掉的危险,下面我说一上如何从整个系统防止注入。 做到以下三步,相信的程序将会比较安全了,而且对整个网站的维...

  • asp.net实现邮箱验证功能,通过邮箱链接激活该帐号

    当一个用户进行注册的时候同时发送一个邮件到注册人的邮箱,通过发送的邮箱链接来激活该帐号,具体用asp.net方法的实现代码,贴在这了,有需要的可以参考! pub...

  • ASP.NET中使用MD5和SHA1算法加密

    你的主页或者你管理的网站有各种密码需要保护,把密码直接放在数据库或者文件中存在不少安全隐患,所以密码加密后存储是最常见的做法。在ASP.NET中实现加密非常容易...

  • ASP.Net中的RSA加密

    在我们实际运用中,加密是保证数据安全的重要手段。以前使用ASP时,对数据加密可以使用MD5和SHA1算法,这两种算法虽然快捷有效,但是无法对通过它们加密的密文进...

  • asp.net中用md5加密简单例子

    在实际应用中,经常需要将虚拟路径转换为实际路径.Request对象的MapPath方法可以解决该问题.下面的例子显示MapPath方法的使用. script l...