DES加密解密方法

1.加密方法
 1 /// <summary>
 2        /// 加密方法
 3        /// </summary>
 4        /// <param name="data">要加密的字符串</param>
 5        /// <param name="KEY_64">密钥</param>
 6        /// <param name="IV_64">密钥</param>
 7        /// <returns>加密后的字符串</returns>

 8          public   string  Encode( string  data, string  KEY_64, string  IV_64)
 9          {
10            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
11            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
12
13            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
14            int i = cryptoProvider.KeySize;
15            MemoryStream ms = new MemoryStream();
16            CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write);
17   
18            StreamWriter sw = new StreamWriter(cst);
19            sw.Write(data);
20            sw.Flush();
21            cst.FlushFinalBlock();
22            sw.Flush();
23            return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);
24   
25        }

 

2.解密方法

 1 /// <summary>
 2        /// 解密方法
 3        /// </summary>
 4        /// <param name="data">要解密的字符串</param>
 5        /// <param name="KEY_64">密钥</param>
 6        /// <param name="IV_64">密钥</param>
 7        /// <returns>解密后的字符串</returns>

 8          public   string  Decode( string  data, string  KEY_64, string  IV_64)
 9          {   
10            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
11            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
12
13            byte[] byEnc;
14            try
15            {
16                byEnc = Convert.FromBase64String(data);
17            }

18            catch
19            {
20                return null;
21            }

22
23            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
24            MemoryStream ms = new MemoryStream(byEnc);
25            CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read);
26            StreamReader sr = new StreamReader(cst);
27            return sr.ReadToEnd();
28        }


3。注意事项:加密时两个密钥和解密时两个密钥必须都相同,也就是四个都要一样,如
1 result = Encode(result, " VavicApp " , " VavicApp " );
2
3 connString = Decode(connString, " VavicApp " , " VavicApp " );

4.引用
1 using  System.Security;
2 using  System.Security.Cryptography;

你可能感兴趣的:(加密解密)