C#对称加密(AES)的简单代码

一、名词解释

AES:AES(Advanced Encryption Standard)是一种对称加密算法,采用分块加密机制处理128位数据块,支持128/192/256位密钥长度。

Key:密钥,是加密算法的核心参数,用于对数据进行加密或解密。长度通常为128位(16字节)、192位(24字节)或256位(32字节),具体长度根据算法模式选择确定。 ‌

IV:初始化向量,是一个固定长度的随机数,长度为128位(16字节),用于增强加密安全性。其核心作用是确保使用同一密钥加密相同明文时生成不同密文,避免安全漏洞。

二、代码示例

cs 复制代码
using System.Security.Cryptography;

/// <summary>加密字符串</summary>
/// <param name="plainText">需要加密的明文</param>
/// <param name="key">加密密钥</param>
/// <param name="iv">初始化向量</param>
/// <returns>返回Base64编码的字符串</returns>
public string Encrypt(string plainText,string key,string iv) {
    string cipherText;
    using (Aes aes = Aes.Create()) {
        aes.Key=Encoding.UTF8.GetBytes(key);
        aes.IV=Encoding.UTF8.GetBytes(iv);
        ICryptoTransform encryptor = aes.CreateEncryptor();
        byte[] plainTextBytes = Encoding.UTF8.GetBytes(plainText);
        byte[] encryptedData = encryptor.TransformFinalBlock(plainTextBytes, 0, plainTextBytes.Length);
        cipherText = Convert.ToBase64String(encryptedData);
    }
    return cipherText;
}

/// <summary>解密字符串</summary>
/// <param name="cipherText">通过Encrypt加密得到的Base64编码的字符串</param>
/// <param name="key">解密密钥,要与加密密钥相同</param>
/// <param name="iv">初始化向量,要与加密的初始化向量相同</param>
/// <returns>返回解密后的字符串</returns>
public string Decrypt(string cipherText,string key,string iv) {
    string plainText;
    using (Aes aes = Aes.Create()) {
        aes.Key= Encoding.UTF8.GetBytes(key);
        aes.IV = Encoding.UTF8.GetBytes(iv);
        ICryptoTransform decryptor = aes.CreateDecryptor();
        byte[] plainTextBytes=Convert.FromBase64String(cipherText);
        byte[] decryptedData=decryptor.TransformFinalBlock(plainTextBytes,0,plainTextBytes.Length);
        plainText=Encoding.UTF8.GetString(decryptedData);
    }
    return plainText;
}
相关推荐
一心赚狗粮的宇叔7 小时前
中级软件开发工程师2025年度总结
java·大数据·oracle·c#
扑火的小飞蛾8 小时前
网络安全小白学习路线图 (基于提供文档库)
学习·安全·web安全
cplmlm8 小时前
EF Core使用CodeFirst生成postgresql数据库表名以及字段名用蛇形命名法,而类名仍使用驼峰命名
c#
pusheng20259 小时前
算力时代的隐形防线:数据中心氢气安全挑战与技术突破
前端·安全
DX_水位流量监测10 小时前
大坝安全监测之渗流渗压位移监测设备技术解析
大数据·运维·服务器·网络·人工智能·安全
lingxiao1688810 小时前
WebApi详解+Unity注入--下篇:Unity注入
unity·c#·wpf
九河云11 小时前
从“被动适配”到“主动重构”:企业数字化转型的底层逻辑
大数据·人工智能·安全·重构·数字化转型
lingxiao1688813 小时前
WebApi详解+Unity注入--中篇:.net core的WebAPI
unity·c#·.netcore
ServBay13 小时前
C# 成为 2025 年的编程语言,7个C#技巧助力开发效率
后端·c#·.net
黄焖鸡能干四碗14 小时前
信息安全网络安全评估报告(WORD)
大数据·网络·人工智能·安全·web安全·制造·需求分析