对3DES加密的运用的一个简单示例

命名空间
using System.Security.Cryptography;
对称算法的机密密钥
  private const string sKey = "123"; 
对称算法的初始化向量
  private const string sIV = "abc";
加密

public static string EncryptString(string Value)
        
{
            SymmetricAlgorithm mCSP 
= new TripleDESCryptoServiceProvider();
            ICryptoTransform ct;
            MemoryStream ms;
            CryptoStream cs;
            
byte[] byt;

            mCSP.Key 
= Convert.FromBase64String(sKey);
            mCSP.IV 
= Convert.FromBase64String(sIV);
            mCSP.Mode 
= System.Security.Cryptography.CipherMode.ECB;
            mCSP.Padding 
= System.Security.Cryptography.PaddingMode.PKCS7;

            ct 
= mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);
            byt 
= Encoding.UTF8.GetBytes(Value);
            ms 
= new MemoryStream();
            cs 
= new CryptoStream(ms, ct, CryptoStreamMode.Write);
            cs.Write(byt, 
0, byt.Length);
            cs.FlushFinalBlock();
            cs.Close();

            
return Convert.ToBase64String(ms.ToArray());
        }

解密

public static string DecryptString(string Value)
        
{
            SymmetricAlgorithm mCSP 
= new TripleDESCryptoServiceProvider();
            ICryptoTransform ct;
            MemoryStream ms;
            CryptoStream cs;
            
byte[] byt;

            mCSP.Key 
= Convert.FromBase64String(sKey);
            mCSP.IV 
= Convert.FromBase64String(sIV);
            mCSP.Mode 
= System.Security.Cryptography.CipherMode.ECB;
            mCSP.Padding 
= System.Security.Cryptography.PaddingMode.PKCS7;
            ct 
= mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);
            byt 
= Convert.FromBase64String(Value);
            ms 
= new MemoryStream();
            cs 
= new CryptoStream(ms, ct, CryptoStreamMode.Write);
            cs.Write(byt, 
0, byt.Length);
            cs.FlushFinalBlock();
            cs.Close();

            
return Encoding.UTF8.GetString(ms.ToArray());
        }


 

posted @ 2006-05-29 15:13  Tim工作室  阅读(335)  评论(0编辑  收藏  举报