首页 > 编程语言 >C# AES加解密

C# AES加解密

时间:2022-12-16 10:57:01浏览次数:56  
标签:AES string Keystring C# 加解密 EncryptedString UTF8 rm

/// <summary>
    /// AES加密
    /// </summary>
    /// <param name="key"></param>
    /// <param name="str"></param>
    /// <returns></returns>
    public static string AesEncrypt(string Keystring, string str)
    {
        var EncryptedString = "";
        if (string.IsNullOrEmpty(str)) return null;
        Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);

        RijndaelManaged rm = new RijndaelManaged();
        rm.Key = Encoding.UTF8.GetBytes(Keystring);
        rm.Mode = CipherMode.ECB;                   // 运算方式
        rm.Padding = PaddingMode.PKCS7;             // 填充方式

        try
        {
            ICryptoTransform cTransform = rm.CreateEncryptor();
            Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
            EncryptedString = Convert.ToBase64String(resultArray, 0, resultArray.Length);
        }
        catch (Exception e)
        {
            
        }

        return EncryptedString;
    }

    /// <summary>
    /// AES解密
    /// </summary>
    /// <param name="Keystring"></param>
    /// <param name="EncryptedString"></param>
    /// <returns></returns>
    public static string AesDecrypt(string Keystring, string EncryptedString)
    {
        var DecryptedString = "";
        try
        {
            if (string.IsNullOrEmpty(EncryptedString))
            {
                return "";
            }
            Byte[] encryptData = Convert.FromBase64String(EncryptedString);
            RijndaelManaged rm = new RijndaelManaged
            {
                Key = Encoding.UTF8.GetBytes(Keystring),
                Mode = System.Security.Cryptography.CipherMode.ECB,
                Padding = System.Security.Cryptography.PaddingMode.PKCS7
            };

            ICryptoTransform ct = rm.CreateDecryptor();

            Byte[] decryptedData = ct.TransformFinalBlock(encryptData, 0, encryptData.Length);
            DecryptedString = Encoding.UTF8.GetString(decryptedData);
        }
        catch (Exception ex)
        {
            
        }

        return DecryptedString;
    }

 

标签:AES,string,Keystring,C#,加解密,EncryptedString,UTF8,rm
From: https://www.cnblogs.com/SmallChen/p/16986717.html

相关文章

  • C/S架构的性能测试-软件测试知识
    很多人关心LR在C/S架构上如何实施性能测试,我想根本原因在于两个方面,一是很多时候脚本无法录制,即LR无法成功调用被测的应用程序,二是测试脚本即使录制下来,可读性不强,往往......
  • docker私有镜像仓库registry基础管理命令系列一
    registry使用前必备:必须安装Docker引擎version1.6.0 基础命令:1.启动一个registry容器:dockerrun-d-p5000:5000--nameregistryregistry:latest2.从远程仓......
  • KBPC1010-ASEMI适配电动柜整流桥KBPC1010
    编辑:llKBPC1010-ASEMI适配电动柜整流桥KBPC1010型号:KBPC1010品牌:ASEMI封装:KBPC-4正向电流:10A反向电压:1000V引脚数量:4芯片个数:4芯片尺寸:100MIL漏电流:>10ua恢复时......
  • C语言字符串拆分的两种方式strtok和正则表达式
    一、利用strtok()函数进行分割函数头文件#include<string.h>函数原型:char*strtok(chars[],constchar*delim);s[]是原字符串,delim为分隔符函数返回被分解的第一个子字......
  • MapReduce
    实验干嘛实现一个分布式的MapReduce,由两部分组成,master和worker。一个master,多个worker。在本机运行,worker和master用rpc通信。每个worker向master索要任务......
  • Spring boot controller单元测试
    工具准备测试框架依赖包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>R......
  • 脑虎科技CEO彭雷专访│脑机未来,生命科学的无尽前沿
        前言"正因为未来无法被明确的勾画出来,导致这个诱人的机会被强烈召唤,那就是将我们的大脑从身体的局限中解放出来。"脑机接口技术正经历着爆发式的增长,并注定会带来巨......
  • Self reprogramming cycle
    注意力的焦点Focuscreatesattraction.Sowhateveryoufocuson,youattrackmoreandmoreof.Whateveryoufocusonyou'rebringingintoyourlife,askyour......
  • 查看oracle中执行计划
    Oracle六种方法查看执行计划 目录:(一)六种执行计划 (1)explainplanfor (2)setautotraceon (3)statistics_level=all (4)dbms_xplan.display_cursor获取 (5)事......
  • 微信小程序ucharts、echarts层级太高,遮挡底部tabbar,或者遮挡自定义头部区域
    一般在开发者工具中正常显示,而在真机上则会遮挡,ucharts,echarts基于层级比tab高,调过两者的z-index是不生效的使用cover-view和cover-image标签 代替原来view和image标签......