在C#中,你可以使用System.IO
和System.Security.Cryptography
命名空間中的類和方法進行文件加密和解密操作。以下是一個簡單的示例,展示了如何使用AES加密和解密文件。
首先,確保已安裝System.Security.Cryptography
NuGet包。
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
class FileEncryptionDecryption
{
static void Main()
{
string inputFile = "input.txt";
string outputFile = "output.txt";
string key = "your-secret-key"; // 請使用一個安全的密鑰
string iv = "your-initial-vector"; // 請使用一個安全的初始向量
// 加密文件
EncryptFile(inputFile, outputFile, key, iv);
// 解密文件
DecryptFile(outputFile, "decrypted_output.txt", key, iv);
}
static void EncryptFile(string inputFile, string outputFile, string key, string iv)
{
using (Aes aes = Aes.Create())
{
aes.Key = Encoding.UTF8.GetBytes(key);
aes.IV = Encoding.UTF8.GetBytes(iv);
using (FileStream fs = new FileStream(inputFile, FileMode.Open))
{
using (CryptoStream cs = new CryptoStream(fs, aes.CreateEncryptor(), CryptoStreamMode.Read))
{
using (FileStream encryptedStream = new FileStream(outputFile, FileMode.Create))
{
cs.CopyTo(encryptedStream);
}
}
}
}
}
static void DecryptFile(string inputFile, string outputFile, string key, string iv)
{
using (Aes aes = Aes.Create())
{
aes.Key = Encoding.UTF8.GetBytes(key);
aes.IV = Encoding.UTF8.GetBytes(iv);
using (FileStream fs = new FileStream(inputFile, FileMode.Open))
{
using (CryptoStream cs = new CryptoStream(fs, aes.CreateDecryptor(), CryptoStreamMode.Read))
{
using (FileStream decryptedStream = new FileStream(outputFile, FileMode.Create))
{
cs.CopyTo(decryptedStream);
}
}
}
}
}
}
在這個示例中,我們使用了AES加密算法對文件進行加密和解密。請確保使用一個安全的密鑰和初始向量。你可以根據需要修改這個示例以適應你的需求。