static string encrypt(string input, string key, string iv)
{
DESCryptoServiceProvider alg = new DESCryptoServiceProvider();
alg.Key = Encoding.UTF8.GetBytes(key);
alg.IV = Encoding.UTF8.GetBytes(iv);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, alg.CreateEncryptor() ,CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cs);
sw.Write(input);
sw.Flush();
cs.FlushFinalBlock();
ms.Flush();
return Convert.ToBase64String(ms.GetBuffer(),0, (int)ms.Length);
}
static string decrypt(string input,string key, string iv)
{
DESCryptoServiceProvider alg = new DESCryptoServiceProvider();
alg.Key = Encoding.UTF8.GetBytes(key);
alg.IV = Encoding.UTF8.GetBytes(iv);
byte[] buffer = Convert.FromBase64String(input);
MemoryStream ms = new MemoryStream(buffer);
CryptoStream cs = new CryptoStream(ms, alg.CreateDecryptor(), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
}
例子:
string key = "ilovekey"; //8位
string iv = "ivboring"; //8位
string output = encrypt("sentitiveData",key,iv);
Console.WriteLine(output);
string result = decrypt(output,key,iv);
Console.WriteLine(result);