3Des對每個數據塊進行了三次的DES加密算法,是DES的一個更安全的變形。比起最初的DES,3DES更為安全。 都是感覺一目了然的摘過來。 下面是加密解密的源碼。ECB模式的。 1 public class _3DESEncrypt 2 { 3 4 public static string Encrypt3DES(string a_strString, string a_strKey) 5 { 6 TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider(); 7 DES.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(a_strKey, "md5").Substring(0, 24)); 8 DES.Mode = CipherMode.ECB; 9 ICryptoTransform DESEncrypt = DES.CreateEncryptor(); 10 byte[] Buffer = ASCIIEncoding.ASCII.GetBytes(a_strString); 11 return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length)); 12 } 13 14 public static string Decrypt3DES(string a_strString, string a_strKey) 15 { 16 TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider(); 17 DES.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(a_strKey, "md5").Substring(0, 24)); 18 DES.Mode = CipherMode.ECB; 19 DES.Padding = System.Security.Cryptography.PaddingMode.PKCS7; 20 ICryptoTransform DESDecrypt = DES.CreateDecryptor(); 21 string result = ""; 22 try 23 { 24 byte[] Buffer = Convert.FromBase64String(a_strString); 25 26 result = ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length)); 27 28 //MemoryStream msDecrypt = new MemoryStream(Buffer); 29 //CryptoStream csDecrypt = new CryptoStream(msDecrypt, 30 // DES.CreateDecryptor(DES.Key, DES.IV), 31 // CryptoStreamMode.Read); 32 33 //// Create buffer to hold the decrypted data. 34 //byte[] fromEncrypt = new byte[Buffer.Length]; 35 36 //// Read the decrypted data out of the crypto stream 37 //// and place it into the temporary buffer. 38 //csDecrypt.Read(fromEncrypt, 0, fromEncrypt.Length); 39 //result = System.Text.Encoding.Default.GetString(fromEncrypt); 40 } 41 catch (Exception e) 42 { 43 } 44 return result; 45 46 } 47 } 裡面加解密都是在DES的基礎上實現、區別在於3Des的Key值是24位、DES而是8位。