日期:2011-09-22  浏览次数:20407 次

加密类代码


 /**//**//**//**********************Created by Chen**************************

*如果你觉得本人的文章好,要引用请尊重著作人的劳动果实,说明

*出处以及原创作者,Thank you!!!   email:aishen944-sohu.com

*******************************************************************/

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""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""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""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.Enco