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();

        }

四、完结。 

相关推荐

  1. C# AES-128-CBC 加密

    2023-12-08 02:10:02       34 阅读
  2. rust - 基于AES-CBC-128的双重加密实现

    2023-12-08 02:10:02       17 阅读
  3. rust - 基于AES-CBC-128的图片加密实现

    2023-12-08 02:10:02       16 阅读
  4. 代码示例:OpenSSL AES CBC 加密

    2023-12-08 02:10:02       14 阅读
  5. openssl3.2 - exp - aes-128-cbc

    2023-12-08 02:10:02       15 阅读
  6. iOS MT19937随机数生成,结合AES-CBC加密算法实现。

    2023-12-08 02:10:02       9 阅读
  7. 【Go】使用Go语言实现AES CBC No Padding加密和解密

    2023-12-08 02:10:02       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 02:10:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 02:10:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 02:10:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 02:10:02       20 阅读

热门阅读

  1. docker常见知识

    2023-12-08 02:10:02       40 阅读
  2. 虚拟机docker中的Nginx部署

    2023-12-08 02:10:02       34 阅读
  3. golang 解决ZWNBSP 空字符问题

    2023-12-08 02:10:02       37 阅读
  4. 【安全】【Linux】通过/proc/pid/获取进程信息

    2023-12-08 02:10:02       39 阅读
  5. 常用到的设计模式(1)

    2023-12-08 02:10:02       42 阅读
  6. scala可变参数列表使用

    2023-12-08 02:10:02       42 阅读
  7. AI聊天 AI绘画 AI视频 AI制作PPT

    2023-12-08 02:10:02       37 阅读
  8. vue watch

    2023-12-08 02:10:02       47 阅读
  9. Docker安装Elasticsearch和控制台

    2023-12-08 02:10:02       46 阅读
  10. Git篇常用命令

    2023-12-08 02:10:02       43 阅读