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);
}
}
}
}