c#怎么实现aes加密

   2024-11-05 9610
核心提示:在C#中实现AES加密可以通过使用AesManaged类来实现。下面是一个简单的示例代码:using System;using System.IO;using System.Sec

在C#中实现AES加密可以通过使用AesManaged类来实现。下面是一个简单的示例代码:

using System;using System.IO;using System.Security.Cryptography;using System.Text;public class AesEncryption{    public static string Encrypt(string plainText, string key, string iv)    {        byte[] keyBytes = Encoding.UTF8.GetBytes(key);        byte[] ivBytes = Encoding.UTF8.GetBytes(iv);        byte[] encryptedBytes;        using (AesManaged aes = new AesManaged())        {            aes.Key = keyBytes;            aes.IV = ivBytes;            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);                    }                    encryptedBytes = ms.ToArray();                }            }        }        return Convert.ToBase64String(encryptedBytes);    }    public static string Decrypt(string encryptedText, string key, string iv)    {        byte[] keyBytes = Encoding.UTF8.GetBytes(key);        byte[] ivBytes = Encoding.UTF8.GetBytes(iv);        byte[] encryptedBytes = Convert.FromBase64String(encryptedText);        string decryptedText;        using (AesManaged aes = new AesManaged())        {            aes.Key = keyBytes;            aes.IV = ivBytes;            ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);            using (MemoryStream ms = new MemoryStream(encryptedBytes))            {                using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))                {                    using (StreamReader sr = new StreamReader(cs))                    {                        decryptedText = sr.ReadToEnd();                    }                }            }        }        return decryptedText;    }}

使用以上代码,你可以通过调用AesEncryption.Encrypt方法进行加密,调用AesEncryption.Decrypt方法进行解密。请注意,你需要提供一个密钥(key)和一个初始化向量(iv),这两个值必须是相同的才能正确解密。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号