117.info
人生若只如初见

c#怎么实现aes加密

在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),这两个值必须是相同的才能正确解密。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe666AzsLAQFVBVc.html

推荐文章

  • c++万能头文件怎么写

    C++万能头文件可以使用预编译指令来实现。预编译指令可以在代码编译之前对源代码进行预处理,例如定义常量、宏和包含其他头文件等。
    以下是一个示例的万能头...

  • c#怎么从文件中读取数据

    在C#中,可以使用StreamReader类来读取文件中的数据。以下是一个简单的示例代码,演示如何从文件中读取数据:
    using System;
    using System.IO; class ...

  • c++降序排序算法怎么实现

    降序排序可以使用标准库中的sort()函数,并传入一个自定义的比较函数,使其按照降序排列。
    下面是一个用于降序排序的示例代码:
    #include #include #i...

  • c++获取当前路径的方法是什么

    在C++中,可以使用std::filesystem::current_path()函数来获取当前路径。需要包含头文件。
    以下是一个示例代码:
    #include #include int main() { std...

  • sqlserver怎么更新表数据

    要在SQL Server中更新表的数据,可以使用UPDATE语句。语法如下:
    UPDATE table_name
    SET column1 = value1, column2 = value2, ...
    WHERE condit...

  • java zoneid的用法是什么

    ZoneId是Java 8中的一个类,它用于表示时区的标识符。它提供了一些方法来获取和操作时区。
    下面是ZoneId类的一些常用方法: of(String zoneId):根据时区的...

  • c++优先队列怎么删除指定元素

    在C++中,优先队列(priority_queue)是一个容器适配器,它提供了一种以优先级顺序访问其元素的方式。优先队列的底层实现通常是二叉堆。
    优先队列不直接支持...

  • php怎么实现aes加密解密

    在PHP中,可以使用openssl库来实现AES加密和解密。以下是一个示例代码:
    function aesEncrypt($data, $key, $iv) { $encrypted = openssl_encrypt($data, '...