using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Security.Cryptography;
using System.IO;
/// <summary>
/// MD5数据库加密
/// </summary>
/// <param name="pToEncrypt">要加密的string</param>
/// <param name="sKey">要加密的key</param>
/// <returns></returns>
public string JiaMD5(string pwd,string key)
{
DESCryptoServiceProvider DESC = new DESCryptoServiceProvider();//定义访问数据库的标准
byte[] by = System.Text.Encoding.Unicode.GetBytes(pwd.ToCharArray());//要加密的密码
DESC.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(key.ToCharArray());//加密密码的钥匙
MemoryStream stream = new MemoryStream();//IO下创建一个流文件
CryptoStream cry = new CryptoStream(stream,DESC.CreateEncryptor(),CryptoStreamMode.Write);//定义将数据流连接到加密转化的流
cry.Write(by,0,by.Length);
cry.FlushFinalBlock();
System.Text.StringBuilder ret = new System.Text.StringBuilder();
foreach (byte b in stream.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}
ret.ToString();
return ret.ToString();
}
/// <summary>
/// Md5解密数据库密码
/// </summary>
/// <param name="pToEncrypt">解密string</param>
/// <param name="sKey">解密key(要8位数)</param>
/// <returns></returns>
public static 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 = System.Text.ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = System.Text.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();
System.Text.StringBuilder ret = new System.Text.StringBuilder();
return System.Text.Encoding.Default.GetString(ms.ToArray());
}