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 plain

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/850445.html

(0)
派派
上一篇 2024-02-02
下一篇 2024-02-02

相关推荐

  • 如何设置div的背景图片(怎么设置div的背景图片)

    如何设置div的背景图片,怎么设置div的背景图片内容导航:设置div背景图片(急急急div怎样插入背景图片div代码如何设置DIV背景图片鼠标点击DIV时使DIV背景图片变暗一、设置div背景图片(急急急这样设置div背景图片的写法是错误的,正确的写法应该是这样css内嵌式写法:div{background:url(’图片的路径’)}c

    2022-04-25
    0
  • 个人论坛如何备案(个人可以备案论坛吗)

    个人论坛如何备案,个人可以备案论坛吗内容导航:我个人想做个论坛怎样备案请问个人论坛怎么备案呢广东BBS专项备案论坛专项备案个人论坛的备案如何申请怎么填写一、我个人想做个论坛怎样备案个人也完全可以备案.只是与企业备案进所提供的资料不同而已.不过目前工信部不允许个人提交备案了.而是需要你的接入商帮你提交.正规的IDC公司都有备案专员专门协助你提交的.你需要开通一个国内

    2022-05-17
    0
  • 关于启动大规模核酸检测的通告(河南许昌新增本土确诊50例)

    许昌市新型冠状病毒感染的肺炎疫情防控指挥部办公室发布最新核酸检测通告。关于启动大规模核酸检测的通告(2022年2号)鉴于当前疫情防控形势,为进一步阻断疫情传播,经市疫情防控指挥部研究,决定在全市组织开展大规模核酸检测。现将有关事项通告如下:一、现场采

    2022-01-06
    0
  • 四川华西医科大学(合并后是一种双赢局面)

    华西医科大学和四川大学合并,是双赢,不是双输。中西部地区的医科大学,首推华西医科大学。21世纪初,华西医科大学与四川大学合并,华西医科大学和附属医院成为四川大学华西临床医学院/华西医院。华西医科大学与四川大学的合并,是双赢的局面。二十年来

    2021-11-26
    0
  • linux中怎么发送get请求

    在Linux系统中,您可以使用curl命令来发送GET请求。下面是一个示例:curl -X GET http://example.com/api/resource在上面的示例中,我们使用curl命令发送一个GET请求到http://example.com/api/resource。您可以替换实际的URL和资源路径来发送GET请求到其他网站或资源。

    2024-03-02
    0
  • linux挂载点迁移的方法是什么

    首先查看当前系统中挂载的点,可以通过df -h命令来查看当前系统挂载的点。确定要迁移的挂载点,首先需要卸载当前挂载的点,可以使用umount命令,例如umount /dev/sdb1。将需要迁移的文件系统挂载到新的挂载点上,可以使用mount命令,例如mount /dev/sdb1 /mnt/new_mount_point。确保新的挂载点能够正常访问,可以通过ls /mnt/new_mount_p

    2024-04-01
    0

发表回复

登录后才能评论