代码改变世界

.net 加密常用代码

2010-08-15 14:34  ruinet  阅读(323)  评论(0编辑  收藏  举报

TripleDES 三重数据加密

public string Encrypt(string data)
    {
      TripleDESCryptoServiceProvider tDES 
= new TripleDESCryptoServiceProvider();
      tDES.IV 
= new ASCIIEncoding().GetBytes("12345678"); //8位
      tDES.Key = new ASCIIEncoding().GetBytes("123456789012345678901234");//24位

      
//or like this.
      
//tDES.GenerateIV();
      
//tDES.GenerateKey();


      MemoryStream mStream 
= new MemoryStream();
      CryptoStream cStream 
= new CryptoStream(mStream,
                tDES.CreateEncryptor(),
                CryptoStreamMode.Write);

      StreamWriter sw 
= new StreamWriter(cStream);
      sw.Write(data);
      sw.Flush();
      cStream.FlushFinalBlock();
      mStream.Flush();

     
return  Convert.ToBase64String(mStream.GetBuffer(), 0, (int)mStream.Length);
    }

    
public string Decrypt(string data)
    {
      TripleDESCryptoServiceProvider tDES 
= new TripleDESCryptoServiceProvider();
      tDES.IV 
= new ASCIIEncoding().GetBytes("12345678"); //8位
      tDES.Key = new ASCIIEncoding().GetBytes("123456789012345678901234");//24位密钥
      byte[] byData = Convert.FromBase64String(data);
      MemoryStream mStream 
= new MemoryStream(byData);
      CryptoStream cStream 
= new CryptoStream(mStream,
                              tDES.CreateDecryptor(),
                               CryptoStreamMode.Read);

      StreamReader sr 
= new StreamReader(cStream);

      
return sr.ReadToEnd();
    }

 

 

 


free web counter