可以用来加/解密数据库用户、密码等
using System; using System.IO; using System.Text; using System.Security.Cryptography;
namespace Common { /// <summary> /// SecurityService 的摘要说明。 /// </summary> public class SecurityService { static protected Byte[] byteKey = {125, 14, 45, 67, 112, 79, 77, 99, 37, 104, 13, 9, 118, 51, 87, 108}; static protected Byte[] byteIV = {86, 19, 79, 15, 72, 58, 117, 45}; static public string SymmetricEncrypt(String sPlainText) { Byte[] bytePlaintext; MemoryStream EncryptedStream; ICryptoTransform Encryptor; CryptoStream TheCryptoStream; if(sPlainText=="") return ""; bytePlaintext = Encoding.ASCII.GetBytes(sPlainText); EncryptedStream = new MemoryStream(sPlainText.Length); Encryptor = GetEncryptor(); TheCryptoStream = new CryptoStream(EncryptedStream, Encryptor, CryptoStreamMode.Write); TheCryptoStream.Write(bytePlaintext, 0, bytePlaintext.Length); TheCryptoStream.FlushFinalBlock(); TheCryptoStream.Close();
return Convert.ToBase64String(EncryptedStream.ToArray());
}//End Function
static public string SymmetricDecrypt(String sEncryptedText) { Byte[] byteEncrypted; MemoryStream PlaintextStream; ICryptoTransform Decryptor; CryptoStream TheCryptoStream;
if (sEncryptedText == "") return "";
byteEncrypted = Convert.FromBase64String(sEncryptedText.Trim()); PlaintextStream = new MemoryStream(sEncryptedText.Length); Decryptor = GetDecryptor(); TheCryptoStream = new CryptoStream(PlaintextStream, Decryptor, CryptoStreamMode.Write);
TheCryptoStream.Write(byteEncrypted, 0, byteEncrypted.Length); TheCryptoStream.FlushFinalBlock(); TheCryptoStream.Close();
return Encoding.ASCII.GetString(PlaintextStream.ToArray());
}//End Function
static private ICryptoTransform GetEncryptor() { RC2CryptoServiceProvider CryptoProvider = new RC2CryptoServiceProvider(); CryptoProvider.Mode = CipherMode.CBC; return CryptoProvider.CreateEncryptor(byteKey, byteIV);
}//End Function
static private ICryptoTransform GetDecryptor() { RC2CryptoServiceProvider CryptoProvider = new RC2CryptoServiceProvider(); CryptoProvider.Mode = CipherMode.CBC; return CryptoProvider.CreateDecryptor(byteKey, byteIV);
}//End Function } }

|