在现代软件开发中,AES对称加密是一种广泛使用的数据安全技术。尤其在处理敏感文件时,使用C#文件加密可以有效防止未授权访问。本文将手把手教你如何使用C#语言实现AES解密教程中涵盖的核心功能——对任意文件进行加密与解密。
AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,意味着加密和解密使用相同的密钥。它具有高安全性、高效率的特点,被广泛应用于金融、通信、文件保护等领域。
你需要:
我们将创建一个简单的工具类 AesFileEncryptor,包含两个主要方法:EncryptFile 和 DecryptFile。
using System;using System.IO;using System.Security.Cryptography;using System.Text;public class AesFileEncryptor{ /// <summary> /// 使用AES加密文件 /// </summary> /// <param name="inputFilePath">原始文件路径</param> /// <param name="outputFilePath">加密后文件路径</param> /// <param name="password">密码(用于生成密钥和IV)</param> public static void EncryptFile(string inputFilePath, string outputFilePath, string password) { using (Aes aes = Aes.Create()) { aes.KeySize = 256; aes.BlockSize = 128; aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; // 从密码派生密钥和IV Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, new byte[16], 1000); aes.Key = pdb.GetBytes(32); // 256位密钥 aes.IV = pdb.GetBytes(16); // 128位IV using (FileStream fsInput = new FileStream(inputFilePath, FileMode.Open, FileAccess.Read)) using (FileStream fsOutput = new FileStream(outputFilePath, FileMode.Create, FileAccess.Write)) using (CryptoStream cs = new CryptoStream(fsOutput, aes.CreateEncryptor(), CryptoStreamMode.Write)) { fsInput.CopyTo(cs); } } } /// <summary> /// 使用AES解密文件 /// </summary> /// <param name="inputFilePath">加密文件路径</param> /// <param name="outputFilePath">解密后文件路径</param> /// <param name="password">密码(必须与加密时一致)</param> public static void DecryptFile(string inputFilePath, string outputFilePath, string password) { using (Aes aes = Aes.Create()) { aes.KeySize = 256; aes.BlockSize = 128; aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, new byte[16], 1000); aes.Key = pdb.GetBytes(32); aes.IV = pdb.GetBytes(16); using (FileStream fsInput = new FileStream(inputFilePath, FileMode.Open, FileAccess.Read)) using (FileStream fsOutput = new FileStream(outputFilePath, FileMode.Create, FileAccess.Write)) using (CryptoStream cs = new CryptoStream(fsOutput, aes.CreateDecryptor(), CryptoStreamMode.Write)) { fsInput.CopyTo(cs); } } }}
下面是如何在主程序中调用上述方法:
class Program{ static void Main() { string originalFile = "test.txt"; string encryptedFile = "test_encrypted.aes"; string decryptedFile = "test_decrypted.txt"; string password = "MySecurePassword123!"; // 加密文件 AesFileEncryptor.EncryptFile(originalFile, encryptedFile, password); Console.WriteLine("文件已加密!"); // 解密文件 AesFileEncryptor.DecryptFile(encryptedFile, decryptedFile, password); Console.WriteLine("文件已解密!"); }}
通过本篇C# AES加密教程,你已经掌握了如何使用AES算法对文件进行安全的加密与解密。无论你是开发桌面应用、Web服务还是移动后端,这项技能都能帮助你更好地保护用户数据。记住:安全无小事,合理使用AES对称加密是构建可信系统的重要一环。
希望这篇教程对你有帮助!欢迎分享给需要的朋友。
本文由主机测评网于2025-12-09发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025125155.html