C#DESの暗号化と復号化

使用してシステムを。
使用してSystem.Textのを。
使用してSystem.Security.Cryptographyを。
使用したSystem.Diagnosticsを。
使用してSystem.IOを。
使用するSystem.Reflectionを。
使用してのSystem.Windows.Formsを。

名前空間FirstEliteCSFileEncoder 
{ 
    クラスプログラム
    { 
        ///  <要約> 
        /// DESENCRYPT加密解密算法。
         ///  </要約> 
        パブリック クラスDESEncoder 
        { 
            公共 DESEncoder(文字列のキー)
            { 
                この .KEY =キー。
            } 

            ///  <要約> 
            /// 对称加密解密的密钥
             ///  </要約> 
            公共の 文字列のキー{ 取得しますプライベート セット; } 

            ///  <要約> 
            /// DES加密
             ///  </要約> 
            ///  <PARAM NAME = "encryptString"> </ PARAM> 
            ///  <戻る> </戻り> 
            パブリック 文字列 EncryptString(文字列encryptString )
            { 
                バイト [] keyBytes = Encoding.UTF8.GetBytes(この .Key.Substring(08));
                バイト [] keyIV = keyBytes。
                バイト [] inputByteArray = Encoding.UTF8.GetBytes(encryptString)。
                DESCryptoServiceProviderプロバイダ = 新しいDESCryptoServiceProvider(); 
                MemoryStreamをmStream = 新しいのMemoryStream(); 
                CryptoStreamはCStream = 新しいCryptoStream(mStream、provider.CreateEncryptor(keyBytes、keyIV)、CryptoStreamMode.Write)。
                cStream.Write(inputByteArray、0 、inputByteArray.Length)。
                cStream.FlushFinalBlock(); 
                リターンConvert.ToBase64String(mStream.ToArray())。
            } 

            ///  <要約> 
            /// DES解密
             ///  </要約> 
            ///  <PARAM NAME = "decryptString"> </ PARAM> 
            ///  <戻る> </戻り> 
            パブリック 文字列 DecryptString(文字列decryptString )
            { 
                バイト [] keyBytes = Encoding.UTF8.GetBytes(この .Key.Substring(08 ))。
                バイト [] keyIV = keyBytes。
                バイト [] inputByteArray = Convert.FromBase64String(decryptString)。
                DESCryptoServiceProviderプロバイダ =新しいDESCryptoServiceProvider(); 
                MemoryStreamをmStream = 新しいのMemoryStream(); 
                CryptoStreamはCStream = 新しいCryptoStream(mStream、provider.CreateDecryptor(keyBytes、keyIV)、CryptoStreamMode.Write)。
                cStream.Write(inputByteArray、0 、inputByteArray.Length)。
                cStream.FlushFinalBlock(); 
                返すEncoding.UTF8.GetString(mStream.ToArray()); 
            } 

            パブリック ブール EncryptFile(文字列ファイルパス)
            { 
                試します 
                { 
                    VARの =バイトFile.ReadAllBytes(ファイルパス)。
                    File.WriteAllBytes(ファイルパス、Encoding.UTF8.GetBytes(この.EncryptString(Convert.ToBase64String(バイト))))。
                    返す ; 
                } 
                キャッチ(例外例)
                { 
                    ます。Debug.Print(ex.ToString())。
                    返す ; 
                } 
            } 

            パブリック ブール DecryptFile(文字列ファイルパスを)
            { 
                試みる
                { 
                    VARのバイト= File.ReadAllBytes(ファイルパス)。
                    File.WriteAllBytes(ファイルパス、Convert.FromBase64String(この.DecryptString(Encoding.UTF8.GetString(バイト))))。
                    返す ; 
                } 
                キャッチ(例外例)
                { 
                    ます。Debug.Print(ex.ToString())。
                    返す ; 
                } 
            } 
        } 

        パブリック 静的 ブール LoadAssembly(文字列のファイルパス)
        { 
            しようと
            { 
                VARのエンコーダは= 新しい DESEncoder(" $ U&CIbzz ");
                VaRのバイト=File.ReadAllBytes(ファイルパス);
                VaRのアセンブリ= Assembly.Load(Convert.FromBase64String(encoder.DecryptString(Encoding.UTF8.GetString(バイト))))。
                MessageBox.Show(assembly.FullName)。
                返す ; 
            } 
            キャッチ(例外例)
            { 
                ます。Debug.Print(ex.ToString())。
                返す ; 
            } 
        } 

        静的 ボイドメイン(文字列[]引数)
        { 
            LoadAssembly("" @ )。
            VARエンコーダ= 新しいですDESEncoder(" $ U&CIbzz " ); 
            (encoder.EncryptFile "@ C:デスクトップ\翻译の.txtの\ \ Users \ユーザーナイフ" ); 
            (encoder.DecryptFile "@ C:デスクトップ\翻译の.txtの\ \ Users \ユーザーナイフ" ); 
            Console.WriteLineを(" オーバー" ); 
            Console.ReadLine(); 
        } 

        
    } 
}

 

おすすめ

転載: www.cnblogs.com/nanfei/p/11077580.html