当前位置: 首页 > article >正文

C# AES-128-CBC 加密

一、加密

        /// <summary>
        /// 加密
        /// </summary>
        public static string AesEncrypt(string toEncrypt)
        {
            byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
            byte[] keyArray = UTF8Encoding.UTF8.GetBytes(Key);//注意编码格式(utf8编码 UTF8Encoding)
            byte[] ivArray = UTF8Encoding.UTF8.GetBytes(Iv);

            RijndaelManaged rDel = new RijndaelManaged();
            rDel.KeySize = 128;
            rDel.BlockSize = 128;
            rDel.Key = keyArray;
            rDel.IV = ivArray;
            rDel.Mode = CipherMode.CBC;
            ICryptoTransform cTransform = rDel.CreateEncryptor();//加密
            byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
            return Convert.ToBase64String(resultArray, 0, resultArray.Length);


        }

二、解密

        /// <summary>
        /// 解密
        /// </summary>
        public static string AesDecrypt(string toDecrypt)
        {
            string key32 = Key.PadRight(16);

            byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
            byte[] keyArray = UTF8Encoding.UTF8.GetBytes(Key);//注意编码格式(utf8编码 UTF8Encoding)
            byte[] ivArray = UTF8Encoding.UTF8.GetBytes(Iv);

            RijndaelManaged rDel = new RijndaelManaged();
            rDel.KeySize = 128;
            rDel.BlockSize = 128;
            rDel.Key = keyArray;
            rDel.IV = ivArray;
            rDel.Mode = CipherMode.CBC;

            ICryptoTransform cTransform = rDel.CreateDecryptor();//解密
            byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
            return UTF8Encoding.UTF8.GetString(resultArray);
        }

三、具体使用

     static void Main(string[] args)
        {
            AESEncoder.Key = "nsmkindi".PadRight(16);

            string s1 = AESEncoder.AesEncrypt("abcd123哪里");
            Console.WriteLine("加密:" + s1);

            string s2 = AESEncoder.AesDecrypt(s1);
            Console.WriteLine("解密:" + s2);

            Console.ReadKey();

        }

四、完结。 


http://www.kler.cn/a/157254.html

相关文章:

  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_sprintf_num 函数
  • 手机上运行AI大模型(Deepseek等)
  • 日期选择控件,时间跨度最大一年。
  • 四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)
  • 51单片机看门狗系统
  • Django框架的全面指南:从入门到高级
  • 【电源专题】什么是电源管理
  • OpenCV快速入门:移动物体检测和目标跟踪
  • python 运用pandas 库处理excel 表格数据
  • C++11的互斥量
  • C语言枚举
  • react-native实践日记--3.ui-kitten中的button设置字体颜色无效
  • AI医疗交流平台【Docola】申请823万美元纳斯达克IPO上市
  • json序列化时Long类型转换为String类型
  • Day50力扣打卡
  • Python类型注解必备利器:typing模块解读指南
  • MC:aternos使用报告(一)
  • nginx部署多个vue或react项目
  • 回溯法及例题(C++实现)
  • 大三上oracle数据库期末复习
  • dp-拦截导弹2
  • 计算机辅助药物设计AIDD-小分子-蛋白质|分子生成|蛋白质配体相互作用预测
  • RWA+AI 叙事下的 ProsperEx,对 Web3 时代交易的重新定义
  • JAVA泛型概念的理解
  • 电压驻波比
  • Oracle 11g安装过程