下面是一个C#中使用AES加密的示例代码:

using System;
using System.Security.Cryptography;
using System.Text;

class Program
{
    static void Main()
    {
        string plainText = "Hello World!";
        string key = "12345678901234567890123456789012";
        string iv = "1234567890123456";

        byte[] encryptedBytes = EncryptStringToBytes(plainText, key, iv);
        string decryptedText = DecryptStringFromBytes(encryptedBytes, key, iv);

        Console.WriteLine("Plain Text: " + plainText);
        Console.WriteLine("Encrypted Text: " + Convert.ToBase64String(encryptedBytes));
        Console.WriteLine("Decrypted Text: " + decryptedText);
    }

    static byte[] EncryptStringToBytes(string plainText, string key, string iv)
    {
        byte[] keyBytes = Encoding.UTF8.GetBytes(key);
        byte[] ivBytes = Encoding.UTF8.GetBytes(iv);

        using (Aes aes = Aes.Create())
        {
            aes.Key = keyBytes;
            aes.IV = ivBytes;

            ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);

            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
            {
                using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
                {
                    byte[] plainTextBytes = Encoding.UTF8.GetBytes(plainText);
                    cs.Write(plainTextBytes, 0, plainTextBytes.Length);
                }

                return ms.ToArray();
            }
        }
    }

    static string DecryptStringFromBytes(byte[] cipherText, string key, string iv)
    {
        byte[] keyBytes = Encoding.UTF8.GetBytes(key);
        byte[] ivBytes = Encoding.UTF8.GetBytes(iv);

        using (Aes aes = Aes.Create())
        {
            aes.Key = keyBytes;
            aes.IV = ivBytes;

            ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);

            using (System.IO.MemoryStream ms = new System.IO.MemoryStream(cipherText))
            {
                using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
                {
                    byte[] decryptedBytes = new byte[cipherText.Length];
                    int decryptedByteCount = cs.Read(decryptedBytes, 0, decryptedBytes.Length);

                    return Encoding.UTF8.GetString(decryptedBytes, 0, decryptedByteCount);
                }
            }
        }
    }
}

在上述代码中,我们使用Aes类来创建AES加密算法对象,然后使用给定的密钥和初始向量(IV)对明文进行加密。加密和解密过程使用CryptoStream类来进行数据流的加密和解密操作。最后,我们将加密后的字节数组转换为Base64字符串进行输出

c#实现aes加密

原文地址: https://www.cveoy.top/t/topic/iAWR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录