C# 加密文件、文件夹、解密文件、文件夹
作者:野牛程序员:2023-12-28 21:40:53C#阅读 3336
使用C#可以使用不同的加密算法和库来加密和解密文件或文件夹。以下是一个简单的例子,演示如何使用System.Security.Cryptography命名空间中的Aes类进行文件加密和解密。请注意,这只是一个基本的示例,实际应用中可能需要更多的安全性和错误处理。
using System;
using System.IO;
using System.Security.Cryptography;
class Program
{
static void Main()
{
string inputFile = "example.txt";
string encryptedFile = "encrypted.dat";
string decryptedFile = "decrypted.txt";
string key = "abcdefghijklmnopqrstuvwx"; // 16字节的密钥,实际使用时应更安全
string iv = "1234567890123456"; // 16字节的初始化向量(IV),实际使用时应更安全
EncryptFile(inputFile, encryptedFile, key, iv);
DecryptFile(encryptedFile, decryptedFile, key, iv);
Console.WriteLine("加密和解密完成。");
}
static void EncryptFile(string inputFile, string outputFile, string key, string iv)
{
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = System.Text.Encoding.UTF8.GetBytes(key);
aesAlg.IV = System.Text.Encoding.UTF8.GetBytes(iv);
using (FileStream inputFileStream = new FileStream(inputFile, FileMode.Open))
using (FileStream outputFileStream = new FileStream(outputFile, FileMode.Create))
using (CryptoStream cryptoStream = new CryptoStream(outputFileStream, aesAlg.CreateEncryptor(), CryptoStreamMode.Write))
{
inputFileStream.CopyTo(cryptoStream);
}
}
}
static void DecryptFile(string inputFile, string outputFile, string key, string iv)
{
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = System.Text.Encoding.UTF8.GetBytes(key);
aesAlg.IV = System.Text.Encoding.UTF8.GetBytes(iv);
using (FileStream inputFileStream = new FileStream(inputFile, FileMode.Open))
using (FileStream outputFileStream = new FileStream(outputFile, FileMode.Create))
using (CryptoStream cryptoStream = new CryptoStream(outputFileStream, aesAlg.CreateDecryptor(), CryptoStreamMode.Write))
{
inputFileStream.CopyTo(cryptoStream);
}
}
}
}请注意,这只是一个简单的例子。在实际应用中,可能需要处理更多的异常情况,确保密钥的安全存储,以及选择更强大的加密算法和最佳实践。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c#socket彻底关闭
- 下一篇:C程序计算 5<<3和 5>>4的值
