熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

一個可逆的DES和TripleDES方式加密類

2013-11-13 10:11:13  來源: .NET編程 

  一個可逆的DES和TripleDES方式加密類(downmoon原創)




using System;
using SystemSecurity;
using SystemSecurityCryptography;
using SystemIO;
using SystemText;
namespace EncryptDownmoon
{
 /**//// <summary>
 /// EncryptSqlConn 的摘要說明
 /// </summary>
 public class EncryptSqlConn
 {
  public EncryptSqlConn()
  {
   if(mCSP ==null)
   {
    mCSP = SetEnc(); 
   }
  }
  /**//// <summary>
  /// 設置加密方式為DES為TripleDES
  /// </summary>
  /// <returns></returns>
  public EncryptSqlConn(int EnMethod)
  {
   if(EnMethod==)
   {
    lngEnMethod=;
   }
   else
   {
    lngEnMethod=;
   }
   if(mCSP ==null)
   {
    mCSP = SetEnc(); 
   }
   
  }
  方法#region 方法

  private SymmetricAlgorithm mCSP;
  private int  m_lngEnMethod=;
  /**//// <summary>
  /// 加密方式為DES為TripleDES
  /// </summary>
  public int lngEnMethod
  {
   get
   {
    return m_lngEnMethod;
   }
   set
   {
    m_lngEnMethod=value;
   }
  }
  private SymmetricAlgorithm SetEnc()
  {
   if(lngEnMethod==)
   {
    return new DESCryptoServiceProvider();
   }
   else
    return new TripleDESCryptoServiceProvider();
  }
  //測試鍵值
  private  string genKeyValue
  {
   get
   {                   
    mCSPGenerateKey();
    return ConvertToBaseString(mCSPKey);
   }
  }
        //測試IV值
  private string genIVValue
  {
   get
   {
    mCSPGenerateIV();
    return ConvertToBaseString(mCSPIV);
   }
  }
  /**//// <summary>
  /// 加密字串
  /// </summary>
  /// <param name=Value></param>
  /// <returns></returns>
  public string EncryptString(string Value)
  {
   ICryptoTransform ct;
   MemoryStream ms;
   CryptoStream cs;
   byte[] byt;
   ct = mCSPCreateEncryptor(mCSPKey mCSPIV);
   //ct = mCSPCreateEncryptor(genKeyValuegenIVValue);
   byt = EncodingUTFGetBytes(Value);
   ms = new MemoryStream();
   cs = new CryptoStream(ms ct CryptoStreamModeWrite);
   csWrite(byt  bytLength);
   csFlushFinalBlock();
   csClose();
   return ConvertToBaseString(msToArray());
  }

  /**//// <summary>
  /// 解密字串
  /// </summary>
  /// <param name=Value></param>
  /// <returns></returns>
  public string DecryptString(string Value)
  {
   ICryptoTransform ct;
   MemoryStream ms;
   CryptoStream cs;
   byte[] byt;
   ct = mCSPCreateDecryptor(mCSPKey mCSPIV);
   //ct = mCSPCreateDecryptor(genKeyValue genIVValue);
   byt = ConvertFromBaseString(Value);
   ms = new MemoryStream();
   cs = new CryptoStream(ms ct CryptoStreamModeWrite);
   csWrite(byt  bytLength);
   csFlushFinalBlock();
   csClose();
   return EncodingUTFGetString(msToArray());
  }
  #endregion
 
 }
}
From:http://tw.wingwit.com/Article/program/net/201311/12830.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.