.net6使用aes加密
时间: 2024-06-24 14:02:12 浏览: 198
.NET 6(也就是.NET Core 6)提供了强大的加密支持,其中包括Advanced Encryption Standard (AES)。AES是一种广泛使用的对称加密算法,用于保护数据的安全性。在.NET 6中,你可以使用`System.Security.Cryptography.Aes`类来进行AES加密和解密操作。
以下是使用.NET 6进行AES加密的基本步骤:
1. 引用所需命名空间:
```csharp
using System.Security.Cryptography;
using System.Text;
using System.IO;
```
2. 创建Aes实例并设置密钥和初始化向量(IV):
```csharp
byte[] key = Encoding.UTF8.GetBytes("your_secret_key_here"); // 你的密钥,必须是16、24或32字节
byte[] iv = Encoding.UTF8.GetBytes("your_initialization_vector_here"); // 你的初始化向量,通常也是16字节
Aes aes = Aes.Create();
aes.Key = key;
aes.IV = iv;
```
3. 创建加密上下文(Encryptor)和解密上下文(Decryptor):
```csharp
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
```
4. 加密/解密数据:
- 对于加密:
```csharp
byte[] input = Encoding.UTF8.GetBytes("plaintext_to_encrypt");
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
cs.Write(input, 0, input.Length);
cs.FlushFinalBlock();
}
return ms.ToArray(); // 返回加密后的字节数组
}
```
- 对于解密:
```csharp
byte[] encryptedData = ...; // 从安全存储获取或接收到的加密数据
using (MemoryStream ms = new MemoryStream(encryptedData))
{
using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
{
using (StreamReader sr = new StreamReader(cs))
{
string decryptedText = sr.ReadToEnd(); // 解密后的字符串
return decryptedText;
}
}
}
```
阅读全文