使用してシステムを。 使用して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(0、8)); バイト [] 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(0、8 ))。 バイト [] 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(); } } }