当前位置:首页 > 技能相关 > C#与C++ > 正文内容

C# AES加密输出 hex

admin7个月前 (10-18)C#与C++2530 修订时间:2024-10-18 09:02:49

概述

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

 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=422

分享给朋友:

相关文章

Web API的创建3年前 (2022-11-07)
C# 第二篇 基础语法3年前 (2022-11-14)
C# 第三篇 流程控制3年前 (2022-11-15)
C# 连接Oracle数据库方法2年前 (2022-12-06)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。