您当前的位置:首页 > 百宝箱

.net core aes加密

2024-09-30 21:05:34 作者:石家庄人才网

本篇文章给大家带来《.net core aes加密》,石家庄人才网对文章内容进行了深度展开说明,希望对各位有所帮助,记得收藏本站。

在.NET Core中,可以使用System.Security.Cryptography命名空间下的Aes类来实现AES加密算法。AES算法是一种对称加密算法,这意味着加密和解密使用相同的密钥。它支持128、192和256位的密钥长度。

以下是使用AES算法进行加密和解密的步骤:

1. 创建Aes对象

```csharpusing System.Security.Cryptography;// 创建Aes对象using (Aes aes = Aes.Create()){ // ...}```

2. 生成密钥和初始化向量(IV)

```csharp// 生成密钥和IVaes.GenerateKey();aes.GenerateIV();byte[] key = aes.Key;byte[] iv = aes.IV;```

3. 创建加密器和解密器

```csharp// 创建加密器using (ICryptoTransform encryptor = aes.CreateEncryptor(key, iv)){ // ...}// 创建解密器using (ICryptoTransform decryptor = aes.CreateDecryptor(key, iv)){ // ...}```

4. 加密数据

```csharp// 加密数据byte[] dataToEncrypt = Encoding.UTF8.GetBytes("要加密的数据");byte[] encryptedData = encryptor.TransformFinalBlock(dataToEncrypt, 0, dataToEncrypt.Length);```

5. 解密数据

```csharp// 解密数据byte[] decryptedData = decryptor.TransformFinalBlock(encryptedData, 0, encryptedData.Length);string decryptedText = Encoding.UTF8.GetString(decryptedData);```

完整示例

```csharpusing System;using System.Security.Cryptography;using System.Text;public class AesEncryption{ public static void Main(string[] args) { // 要加密的数据 string dataToEncrypt = "这是一段要加密的文本。"; // 生成密钥和IV byte[] key; byte[] iv; GenerateKeyAndIV(out key, out iv); // 加密数据 byte[] encryptedData = Encrypt(dataToEncrypt, key, iv); // 解密数据 string decryptedText = Decrypt(encryptedData, key, iv); // 打印结果 Console.WriteLine("原始数据: " + dataToEncrypt); Console.WriteLine("加密数据: " + Convert.ToBase64String(encryptedData)); Console.WriteLine("解密数据: " + decryptedText); } // 生成密钥和IV private static void GenerateKeyAndIV(out byte[] key, out byte[] iv) { using (Aes aes = Aes.Create()) { aes.GenerateKey(); aes.GenerateIV(); key = aes.Key; iv = aes.IV; } } // 加密数据 private static byte[] Encrypt(string data, byte[] key, byte[] iv) { using (Aes aes = Aes.Create()) { aes.Key = key; aes.IV = iv; using (ICryptoTransform encryptor = aes.CreateEncryptor()) { byte[] dataToEncrypt = Encoding.UTF8.GetBytes(data); return encryptor.TransformFinalBlock(dataToEncrypt, 0, dataToEncrypt.Length); } } } // 解密数据 private static string Decrypt(byte[] data, byte[] key, byte[] iv) { using (Aes aes = Aes.Create()) { aes.Key = key; aes.IV = iv; using (ICryptoTransform

版权声明:《.net core aes加密》来自【石家庄人才网】收集整理于网络,不代表本站立场,所有图片文章版权属于原作者,如有侵略,联系删除。
https://www.ymil.cn/baibaoxiang/258.html