用C#实现DES加密解密

发布时间 2023-09-27 18:10:12作者: itjeff

using  System; 
 using  System.Security.Cryptography; 
 using  System.Text; 
 using  System.IO; 
  
 namespace  Common 
 ...{ 
         /** <summary> 
          /// DESEncrypt加密解密算法。 
          /// </summary> 
          public   sealed   class  DESEncrypt 
         ...{ 
                  private  DESEncrypt() 
                 ...{ 
                          // 
                          // TODO: 在此处添加构造函数逻辑 
                          // 
                 } 
  
                  private   static   string  key =  "zhoufoxcn" ; 
  
                 /** <summary> 
                  /// 对称加密解密的密钥 
                  /// </summary> 
                  public   static   string  Key 
                 ...{ 
                         get 
                         ...{ 
                                  return  key; 
                         } 
                         set 
                         ...{ 
                                 key = value; 
                         } 
                 } 
  
                 /** <summary> 
                  /// DES加密 
                  /// </summary> 
                  /// <param name="encryptString"></param> 
                  /// <returns></returns> 
                  public   static   string  DesEncrypt( string  encryptString) 
                 ...{ 
                          byte [] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8)); 
                          byte [] keyIV = keyBytes; 
                          byte [] inputByteArray = Encoding.UTF8.GetBytes(encryptString); 
                         DESCryptoServiceProvider provider =  new  DESCryptoServiceProvider(); 
                         MemoryStream mStream =  new  MemoryStream(); 
                         CryptoStream cStream =  new  CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write); 
                         cStream.Write(inputByteArray, 0, inputByteArray.Length); 
                         cStream.FlushFinalBlock(); 
                          return  Convert.ToBase64String(mStream.ToArray()); 
                 } 
  
                 /** <summary> 
                  /// DES解密 
                  /// </summary> 
                  /// <param name="decryptString"></param> 
                  /// <returns></returns> 
                  public   static   string  DesDecrypt( string  decryptString) 
                 ...{ 
                          byte [] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 8)); 
                          byte [] keyIV = keyBytes; 
                          byte [] inputByteArray = Convert.FromBase64String(decryptString); 
                         DESCryptoServiceProvider provider =  new  DESCryptoServiceProvider(); 
                         MemoryStream mStream =  new  MemoryStream(); 
                         CryptoStream cStream =  new  CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write); 
                         cStream.Write(inputByteArray, 0, inputByteArray.Length); 
                         cStream.FlushFinalBlock(); 
                          return  Encoding.UTF8.GetString(mStream.ToArray()); 
                 } 
         }