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字节。