using System.IO; using System.Security.Cryptography; using System.Text; namespace Admin.NET.Core; public static class TripleDES { /// /// 加密文件 /// /// 待加密文件路径 /// 加密后的文件路径 /// 密码 (24位长度) public static void EncryptFile(string inputFile, string outputFile, string password) { using (TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider()) { tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; tdes.Key = Encoding.UTF8.GetBytes(password); using (FileStream inputFileStream = new FileStream(inputFile, FileMode.Open)) using (FileStream encryptedFileStream = new FileStream(outputFile, FileMode.Create)) using (CryptoStream cryptoStream = new CryptoStream(encryptedFileStream, tdes.CreateEncryptor(), CryptoStreamMode.Write)) { inputFileStream.CopyTo(cryptoStream); } } } /// /// 加密文件 /// /// 加密的文件路径 /// 解密后的文件路径 /// 密码 (24位长度) public static void DecryptFile(string inputFile, string outputFile, string password) { using (TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider()) { tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; tdes.Key = Encoding.UTF8.GetBytes(password); using (FileStream encryptedFileStream = new FileStream(inputFile, FileMode.Open)) using (FileStream decryptedFileStream = new FileStream(outputFile, FileMode.Create)) using (CryptoStream cryptoStream = new CryptoStream(encryptedFileStream, tdes.CreateDecryptor(), CryptoStreamMode.Read)) { cryptoStream.CopyTo(decryptedFileStream); } } } }