在C#中,可以使用多種方法對文件進行加密。這里,我將向您展示如何使用Aes
類(高級加密標準)和FileStream
類來實現文件加密和解密。
首先,確保已經安裝了System.Security.Cryptography命名空間。
以下是一個簡單的示例,展示了如何使用AES加密和解密文件:
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
class FileEncryption
{
static void Main()
{
string inputFile = "input.txt";
string outputFile = "output.enc";
string key = "your-secret-key"; // 請確保密鑰長度為16、24或32個字符
string iv = "your-initial-vector"; // 請確保初始向量長度為16個字符
EncryptFile(inputFile, outputFile, key, iv);
DecryptFile(outputFile, "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 (FileStream fos = new FileStream(outputFile, FileMode.Create))
{
using (CryptoStream cs = new CryptoStream(fos, aes.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(fs.ToArray(), 0, fs.Length);
}
}
}
}
}
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 (FileStream fos = new FileStream(outputFile, FileMode.Create))
{
using (CryptoStream cs = new CryptoStream(fs, aes.CreateDecryptor(), CryptoStreamMode.Write))
{
cs.Write(fs.ToArray(), 0, fs.Length);
}
}
}
}
}
}
在這個示例中,我們首先創建了一個名為FileEncryption
的類。在Main
方法中,我們指定了輸入文件、加密后的輸出文件、密鑰和初始向量。然后,我們調用EncryptFile
方法對文件進行加密,接著調用DecryptFile
方法對加密后的文件進行解密。
請注意,您需要將your-secret-key
和your-initial-vector
替換為您自己的密鑰和初始向量。密鑰的長度應為16、24或32個字符,而初始向量的長度應為16個字符。在實際應用中,確保密鑰和初始向量的安全性非常重要。