在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加密算法对文件进行加密和解密。请确保使用一个安全的密钥和初始向量。你可以根据需要修改这个示例以适应你的需求。