C#如何实现DES加密算法
1、打开vs2010,建立一个项目,名称随意。
如图,笔者建立了一个简单的WinForm项目,名称为:DES加密。

2、新建一个类,具体步骤为:
在【解决方案资源管理器】窗口中右键项目名,依次选择“添加”→“类”,如图所示。
类名为:EncryptDES.cs,点击添加。


3、在类文件中添加如下代码:读者只需复制即可
/// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="encryptKey">加密密钥,要求为8位</param>
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
public static string strEncryptDES(string encryptString, string encryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
//rgbIV与rgbKey可以不一样,这里只是为了简便,读者可以自行修改
byte[] rgbIV = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;
}
}
这里要用到三个类:
1.DESCryptoServiceProvider类:在最上方添加“using System.Security.Cryptography;”即可。
2.MemoryStream类:在最上方添加“using System.IO;”即可。
3.CryptoStream类:与2相同,在最上方添加“using System.IO;”即可。

4、到这里算是实现了C#中的DES加密算法,下面是对算法的测试,您可以跳过不看。
回到窗口界面,添加一个按钮,如图。

5、双击该按钮,进入代码编辑界面,添加如下代码,如图。
string en = "C#如何实现DES加密算法";
string result = EncryptDES.strEncryptDES(en, "hello,I am bianyuanhuanghun");
MessageBox.Show(result);

6、运行程序,点击按钮,出现加密后的字符串,如图,测试结束。
