C# AES加密输出 hex
概述
在C#中,您可以使用内置的AES加密库来加密数据,并以hex格式输出加密结果。以下是一个简单的例子,展示了如何使用AES算法加密字符串,并将加密结果转换为hex字符串。
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
public class AesEncryption
{
public static string EncryptToHex(string plainText, string key, string iv)
{
var aes = Aes.Create();
aes.Key = Encoding.UTF8.GetBytes(key);
aes.IV = Encoding.UTF8.GetBytes(iv);
var encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
byte[] bytesToBeEncrypted = Encoding.UTF8.GetBytes(plainText);
using (var memoryStream = new MemoryStream())
{
using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
{
cryptoStream.Write(bytesToBeEncrypted, 0, bytesToBeEncrypted.Length);
cryptoStream.FlushFinalBlock();
byte[] encryptedBytes = memoryStream.ToArray();
return BitConverter.ToString(encryptedBytes).Replace("-", "");
}
}
}
}这段代码定义了一个AesEncryption类,其中包含一个静态方法EncryptToHex,它接受要加密的文本、密钥和初始化向量,然后执行AES加密,并将结果转换为hex字符串。
使用示例
class Program
{
static void Main(string[] args)
{
string plainText = "Hello World!";
string key = "1234567812345678"; // 16 bytes key for AES-128
string iv = "1234567812345678"; // 16 bytes IV for AES-128
string hexEncrypted = AesEncryption.EncryptToHex(plainText, key, iv);
Console.WriteLine(hexEncrypted);
}
}请确保您的密钥和初始化向量的长度符合您选择的AES算法的要求(AES-128需要16字节的密钥和初始化向量)。如果您使用的是其他长度的AES,例如AES-256,则密钥和初始化向量的长度应为32字节。

