using System;
|
using System.IO;
|
using System.Security.Cryptography;
|
using System.Text;
|
using System.Web.Security;
|
|
namespace Common
|
{
|
|
public class DESEncrypt
|
{
|
//加密串
|
//public static string encryptStr = "litianping";
|
public static string encryptStr = "abcDEF123@$@";
|
|
public static string Encrypt(string Text)
|
{
|
return DESEncrypt.Encrypt(Text, encryptStr);
|
}
|
|
public static string Encrypt(string Text, string sKey)
|
{
|
DESCryptoServiceProvider cryptoServiceProvider = new DESCryptoServiceProvider();
|
byte[] bytes = Encoding.Default.GetBytes(Text);
|
//c#的DES加密是key为8位
|
cryptoServiceProvider.Key = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
|
cryptoServiceProvider.IV = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
|
MemoryStream memoryStream = new MemoryStream();
|
CryptoStream cryptoStream = new CryptoStream((Stream)memoryStream, cryptoServiceProvider.CreateEncryptor(), CryptoStreamMode.Write);
|
cryptoStream.Write(bytes, 0, bytes.Length);
|
cryptoStream.FlushFinalBlock();
|
StringBuilder stringBuilder = new StringBuilder();
|
foreach (byte num in memoryStream.ToArray())
|
stringBuilder.AppendFormat("{0:X2}", (object)num);
|
return stringBuilder.ToString();
|
}
|
|
public static string Decrypt(string Text)
|
{
|
return DESEncrypt.Decrypt(Text, encryptStr);
|
}
|
|
public static string Decrypt(string Text, string sKey)
|
{
|
DESCryptoServiceProvider cryptoServiceProvider = new DESCryptoServiceProvider();
|
int length = Text.Length / 2;
|
byte[] buffer = new byte[length];
|
for (int index = 0; index < length; ++index)
|
{
|
int num = Convert.ToInt32(Text.Substring(index * 2, 2), 16);
|
buffer[index] = (byte)num;
|
}
|
//c#的DES加密是key为8位
|
cryptoServiceProvider.Key = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
|
cryptoServiceProvider.IV = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
|
MemoryStream memoryStream = new MemoryStream();
|
CryptoStream cryptoStream = new CryptoStream((Stream)memoryStream, cryptoServiceProvider.CreateDecryptor(), CryptoStreamMode.Write);
|
cryptoStream.Write(buffer, 0, buffer.Length);
|
cryptoStream.FlushFinalBlock();
|
return Encoding.Default.GetString(memoryStream.ToArray());
|
}
|
}
|
}
|