首页 关于我们 成功案例 网络营销 电商设计 新闻中心 联系方式
QQ联系
电话联系
手机联系

.NET怎么实现AES加密和解密

发布时间:2025-11-04 22:07
发布者:网络
浏览次数:
.NET中通过Aes类实现AES加密解密,需使用相同密钥和随机IV,支持128、192、256位密钥,推荐RNG生成密钥IV,加密后Base64编码,IV可随文传输,密钥须安全存储。

.net怎么实现aes加密和解密

.NET 中实现 AES 加密和解密非常方便,主要通过 Aes 类(位于 System.Security.Cryptography 命名空间)来完成。AES 是一种对称加密算法,加密和解密使用相同的密钥,适合保护敏感数据。

1. 基本概念与准备

AES 支持多种密钥长度:128、192 和 256 位。加密需要密钥(Key)和初始化向量(IV),两者都应安全生成并妥善保存。

在 .NET 中推荐使用随机生成的密钥和 IV,并确保每次加密使用不同的 IV(但密钥相同)。

2. 实现 AES 加密

以下是一个简单的字符串加密示例:

bee餐饮点餐外卖小程序 bee餐饮点餐外卖小程序

bee餐饮点餐外卖小程序是针对餐饮行业推出的一套完整的餐饮解决方案,实现了用户在线点餐下单、外卖、叫号排队、支付、配送等功能,完美的使餐饮行业更高效便捷!功能演示:1、桌号管理登录后台,左侧菜单 “桌号管理”,添加并管理你的桌号信息,添加以后在列表你将可以看到 ID 和 密钥,这两个数据用来生成桌子的二维码2、生成桌子二维码例如上面的ID为 308,密钥为 d3PiIY,那么现在去左侧菜单微信设置

bee餐饮点餐外卖小程序 3 查看详情 bee餐饮点餐外卖小程序
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

public static string Encrypt(string plainText, byte[] key, byte[] iv)
{
    using (Aes aes = Aes.Create())
    {
        aes.Key = key;
        aes.IV = iv;

        ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);

        using (MemoryStream ms = new MemoryStream())
        {
            using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
            {
                using (StreamWriter sw = new StreamWriter(cs))
                {
                    sw.Write(plainText);
                }
                return Convert.ToBase64String(ms.ToArray());
            }
        }
    }
}

3. 实现 AES 解密

对应地,解密过程如下:

public static string Decrypt(string cipherText, byte[] key, byte[] iv)
{
    using (Aes aes = Aes.Create())
    {
        aes.Key = key;
        aes.IV = iv;

        ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);

        using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(cipherText)))
        {
            using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
            {
                using (StreamReader sr = new StreamReader(cs))
                {
                    return sr.ReadToEnd();
                }
            }
        }
    }
}

4. 生成密钥和 IV

可以使用 RNGCryptoServiceProviderRandomNumberGenerator 安全生成密钥和 IV:

using (Aes aes = Aes.Create())
{
    aes.GenerateKey(); // 生成 256 位密钥(默认)
    aes.GenerateIV();  // 生成 128 位 IV

    byte[] key = aes.Key;
    byte[] iv = aes.IV;

    string encrypted = Encrypt("Hello, World!", key, iv);
    string decrypted = Decrypt(encrypted, key, iv);

    Console.WriteLine(decrypted); // 输出: Hello, World!
}

注意:实际应用中,密钥需安全存储(如使用密钥管理服务),IV 可随密文一起传输(不需要保密)。

基本上就这些。只要保证密钥安全,使用标准流程即可实现可靠的 AES 加解密。

以上就是.NET怎么实现AES加密和解密的详细内容,更多请关注其它相关文章!


# 编码  # ai  # stream  # 敏感数据  # .net  # crypto  # cryptos  # 如何使用  # 不安全  # 重试  # 是一个  # 迭代  # 是一种  # 不需要  # 推荐使用  # 相关文章  # 嘉兴网站建设定制公司  # 晋州网站建设联系方式  # 企业网站建设背景  # 软件网站建设专业  # 孟村网站推广公司  # 网易云课堂营销推广  # 吉林网站优化哪家可靠些  # sem推广营销怎么做的  # 唯品会怎么做营销推广的  # 营销推广资源包括哪些