新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:一个可以用来加密/解密的类

一个可以用来加密/解密的类

新客网 XKER.COM 2004-09-17 来源: 收藏本文
可以用来加/解密数据库用户、密码等

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



收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐