using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Security.Cryptography;
|
|
using System.Globalization;
|
|
|
|
namespace Utils.Security
|
|
{
|
|
/// <summary>
|
|
/// DES加密。方法一
|
|
/// </summary>
|
|
public class DES
|
|
{
|
|
/// <summary>
|
|
/// 创建随机Key
|
|
/// </summary>
|
|
public string GenerateKey()//创建随机Key
|
|
{
|
|
DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
|
|
return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 加密字符串
|
|
/// </summary>
|
|
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);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 解密字符串
|
|
/// </summary>
|
|
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);
|
|
}
|
|
|
|
}
|
|
}
|