using System;using System.Text;using System.Security;using System.Security.Cryptography;using System.IO;namespace EncryptClasses{ /**//// <summary> /// 此处定义的是DES加密,为了便于今后的管理和维护 /// 请不要随便改动密码,或者改变了密码后请一定要 /// 牢记先前的密码,否则将会照成不可预料的损失 /// </summary> public class DESEncrypt { "member fields"#region "member fields" private string iv="12345678"; private string key="12345678"; private Encoding encoding=new UnicodeEncoding(); private DES des; #endregion /**//// <summary> /// 构造函数 /// </summary> public DESEncrypt() { des=new DESCryptoServiceProvider(); } "propertys"#region "propertys" /**//// <summary> /// 设置加密密钥 /// </summary> public string EncryptKey { get{return this.key;} set { this.key=value; } } /**//// <summary> /// 要加密字符的编码模式 /// </summary> public Encoding EncodingMode { get{return this.encoding;} set{this.encoding=value;} } #endregion "methods"#region "methods" /**//// <summary> /// 加密字符串并返回加密后的结果 /// </summary> /// <param name="str"></param> /// <returns></returns> public string EncryptString(string str) { byte[] ivb=Encoding.ASCII.GetBytes(this.iv); byte[] keyb=Encoding.ASCII.GetBytes(this.EncryptKey);//得到加密密钥 byte[] toEncrypt=this.EncodingMode.GetBytes(str);//得到要加密的内容 byte[] encrypted; ICryptoTransform encryptor=des.CreateEncryptor(keyb,ivb); MemoryStream msEncrypt=new MemoryStream(); CryptoStream csEncrypt=new CryptoStream(msEncrypt,encryptor,CryptoStreamMode.Write); csEncrypt.Write(toEncrypt,0,toEncrypt.Length); csEncrypt.FlushFinalBlock(); encrypted=msEncrypt.ToArray(); csEncrypt.Close(); msEncrypt.Close(); return this.EncodingMode.GetString(encrypted); } /**//// <summary> /// 加密指定的文件,如果成功返回True,否则false /// </summary> /// <param name="filePath">要加密的文件路径</param> /// <param name="outPath">加密后的文件输出路径</param> public void EncryptFile(string filePath,string outPath) { bool isExist=File.Exists(filePath); if(isExist)//如果存在 { byte[] ivb=Encoding.ASCII.GetBytes(this.iv); byte[] keyb=Encoding.ASCII.GetBytes(this.EncryptKey); //得到要加密文件的字节流 FileStream fin=new FileStream(filePath,FileMode.Open,FileAccess.Read); StreamReader reader=new StreamReader(fin,this.EncodingMode); string dataStr=reader.ReadToEnd(); byte[] toEncrypt=this.EncodingMode.GetBytes(dataStr); fin.Close(); FileStream fout=new FileStream(outPath,FileMode.Create,FileAccess.Write); ICryptoTransform encryptor=des.CreateEncryptor(keyb,ivb); CryptoStream csEncrypt=