程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 實現3Des加密 解密

C# 實現3Des加密 解密

編輯:C#入門知識

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位。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved