110,537
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// key和IV都用了key的值
/// </summary>
public static class DES
{
private static string key = "12345678";
//加密
public static string Encrypt(string text)
{
return Encrypt(text, key);
}
public static string Encrypt(string text, string key)
{
DESCryptoServiceProvider DESProvider = new DESCryptoServiceProvider();
byte[] textbuffer = Encoding.Default.GetBytes(text);
byte[] keybuffer = Encoding.Default.GetBytes(key);
DESProvider.Key = keybuffer;
DESProvider.IV = keybuffer;
System.IO.MemoryStream mStream = new System.IO.MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DESProvider.CreateEncryptor(), CryptoStreamMode.Write);
cStream.Write(textbuffer, 0, textbuffer.Length);
cStream.FlushFinalBlock();
StringBuilder newtext = new StringBuilder();
foreach (byte b in mStream.ToArray())
{
newtext.AppendFormat("{0:X2}", b);
}
return newtext.ToString();
}
//解密
public static string Decrypt(string text)
{
return Encrypt(text, key);
}
public static string Decrypt(string text, string key)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] textByteArray = new byte[text.Length / 2];
for (int x = 0; x < text.Length / 2; x++)
{
int i = (Convert.ToInt32(text.Substring(x * 2, 2), 16));
textByteArray[x] = (byte)i;
}
des.Key = Encoding.Default.GetBytes(key);
des.IV = Encoding.Default.GetBytes(key);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read);
cs.Write(textByteArray, 0, textByteArray.Length);
cs.FlushFinalBlock();
return System.Text.Encoding.Default.GetString(ms.ToArray());
}
}