cdo

导航

C#中的DES加解密方法

const string KEY_64 = "VavicApp";
const string IV_64 = "VavicApp"; //注意了,是8个字符,64位

      public string Encode(string data)
        
{
            
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
            
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

            DESCryptoServiceProvider cryptoProvider 
= new DESCryptoServiceProvider();
            
int i = cryptoProvider.KeySize;
            MemoryStream ms 
= new MemoryStream();
            CryptoStream cst 
= new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write);
   
            StreamWriter sw 
= new StreamWriter(cst);
            sw.Write(data);
            sw.Flush();
            cst.FlushFinalBlock();
            sw.Flush();
            
return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);
   
        }


        
public string Decode(string data)
        
{   
            
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
            
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

            
byte[] byEnc;
            
try
            
{
                byEnc 
= Convert.FromBase64String(data);
            }

            
catch
            
{
                
return null;
            }


            DESCryptoServiceProvider cryptoProvider 
= new DESCryptoServiceProvider();
            MemoryStream ms 
= new MemoryStream(byEnc);
            CryptoStream cst 
= new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read);
            StreamReader sr 
= new StreamReader(cst);
            
return sr.ReadToEnd();
        }

posted on 2005-06-24 15:53  Cdo  阅读(780)  评论(1编辑  收藏  举报