C# 加密文件、文件夹、解密文件、文件夹
作者:野牛程序员:2023-12-28 21:40:53C#阅读 2555
使用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的值