System.Security.Cryptography.RijndaelManaged()

以下为ai生成:

System.Security.Cryptography.RijndaelManaged 是.NET框架中的一个加密类,用于提供高级加密标准(AES)算法的实现。AES是一种强大的对称加密算法,它可以用于保护数据的安全。

以下是一个使用RijndaelManaged进行数据加密和解密的简单例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
  
public class AesUtility
{
    private static byte[] aesKey = Encoding.UTF8.GetBytes("1234567812345678"); // 16 bytes key for AES
    private static byte[] aesIV = Encoding.UTF8.GetBytes("1234567812345678"); // 16 bytes IV for AES
  
    public static string Encrypt(string plainText)
    {
        using (RijndaelManaged aes = new RijndaelManaged())
        {
            aes.Key = aesKey;
            aes.IV = aesIV;
  
            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());
            }
        }
    }
  
    public static string Decrypt(string cipherText)
    {
        using (RijndaelManaged aes = new RijndaelManaged())
        {
            aes.Key = aesKey;
            aes.IV = aesIV;
  
            ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
  
            byte[] bytes = Convert.FromBase64String(cipherText);
  
            using (MemoryStream ms = new MemoryStream(bytes))
            {
                using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
                {
                    using (StreamReader sr = new StreamReader(cs))
                    {
                        return sr.ReadToEnd();
                    }
                }
            }
        }
    }
}

  

在这个例子中,Encrypt方法使用AES加密一个字符串,而Decrypt方法则用于解密。注意,在实际应用中,密钥(Key)和初始化向量(IV)应该是随机生成的,并且要保密,不应该硬编码在代码中。

这个例子只是为了展示如何使用RijndaelManaged进行基本的加密和解密操作。在实际应用中,你可能需要考虑更多的安全性问题,比如密钥管理、异常处理等。

posted @   yinghualeihenmei  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示