现在的位置: 首页 > 综合 > 正文

一个可以用来加密/解密的类(原创)

2014年12月10日 ⁄ 综合 ⁄ 共 2080字 ⁄ 字号 评论关闭

可以用来加/解密数据库用户、密码等

using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;

namespace Common
{
?///

?/// SecurityService 的摘要说明。
?///

?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
?}
}

抱歉!评论已关闭.