[TestClass]public class UnitTest1{[TestMethod]public void TestMethod1(){var key = "cheayeon";var iv = "encoding";var text = "sb sb ha ha ha";//对text,key iv 进行base64加密var enKey = Convert.ToBase64String(Encoding.UTF8.GetBytes(key));var enIv = Convert.ToBase64String(Encoding.UTF8.GetBytes(iv));var enText = Convert.ToBase64String(Encoding.UTF8.GetBytes(text));//加密var encryp = AesEncryp(enText, enKey,enIv);//解密var decryp = AesDecryp(encryp, enKey, enIv);}/// <summary>/// 加密密text/// 王剑锋 2018年7月7日09:58:34/// </summary>/// <param name="text">明文</param>/// <param name="key">秘钥,Base64串</param>/// <param name="iv">向量,Base64串</param>/// <returns></returns>public string AesEncryp(string text,string key,string iv){var aes = Aes.Create();//AES-128-CBC PKCS#7aes.Mode = CipherMode.CBC;aes.Padding = PaddingMode.PKCS7;aes.KeySize = 128;aes.BlockSize = 128;//Base64解密text,KEY,IV,不够16位填充0aes.Key = Padding16(Convert.FromBase64String(key),0);aes.IV = Padding16(Convert.FromBase64String(iv),0);//获取该算法规则下的加密器var encryp = aes.CreateEncryptor();//加密之前加一个Base64解密 ,要加密的数据var dataBytes = Convert.FromBase64String(text);//获取AES-128-CBC PKCS#7 密文var enData = encryp.TransformFinalBlock(dataBytes,0, dataBytes.Length);return Convert.ToBase64String(enData);}/// <summary>/// 解密text/// 王剑锋 2018年7月7日09:58:16/// </summary>/// <param name="text">密文</param>/// <param name="key">秘钥,Base64串</param>/// <param name="iv">向量,Base64串</param>/// <returns></returns>public string AesDecryp(string text, string key, string iv){var aes = Aes.Create();//AES-128-CBC PKCS#7aes.Mode = CipherMode.CBC;aes.Padding = PaddingMode.PKCS7;aes.KeySize = 128;aes.BlockSize = 128;//Base64解密text,KEY,IVaes.Key = Padding16(Convert.FromBase64String(key),0);aes.IV =  Padding16(Convert.FromBase64String(iv),0);//获取该算法规则下的解密器var encryp = aes.CreateDecryptor();//加密之前加一个Base64解密 ,要加密的数据var dataBytes = Convert.FromBase64String(text);//获取AES-128-CBC PKCS#7 明文var enData = encryp.TransformFinalBlock(dataBytes, 0, dataBytes.Length);return Encoding.UTF8.GetString(enData);}/// <summary>/// 不够16位的整数倍,已指定字符填充/// </summary>/// <param name="array"></param>/// <param name="padding"></param>/// <returns></returns>public byte[] Padding16(byte [] array,byte padding){int group = (array.Length + 15) / 16;var newArray = new byte[group*16];for (int i = 0; i < newArray.Length; i++){newArray[i] = (i < array.Length ? array[i] : padding);}return newArray;}

  

转载于:https://www.cnblogs.com/chaeyeon/p/9276897.html

微信AES-128-CBC加密解密相关推荐

  1. Go Nodejs Java Aes 128 ECB加密解密结果保持一致

    在多语言的生产环境下,常常是由一种语言进行加密而由另一种语言来进行解密,因此有必要保持各种语言之间加密解密算法的一致性.下面列出了Go,Nodejs,Java 的 Aes-128-Ecb的加密解密算法 ...

  2. java aes128加密解密_java AES 128 位加密解密算法

    最近在做app后台的服务器,使用到AES加密解密算法,无奈网上的都不符合要求,于是自己借鉴着写了一个AES加密解密工具. 密钥长度问题 默认 Java 中仅支持 128 位密钥,当使用 256 位密钥 ...

  3. php aes 128位加密,php实现AES 128位加密的相关操作技巧分享

    php实现AES 128位加密的相关操作技巧是什么?这篇文章主要介绍了PHP实现的AES 128位加密算法,结合实例形式分析了AES 128位加密的相关概念.原理及php实现AES 128位加密的相关 ...

  4. Vue前端和Java后端 联调使用AES 前后端加密解密

    Vue前端和Java后端 联调使用AES 前后端加密解密 最近在项目中需要针对重要数据进行加密传输,在网上找了一大推加密方式 最终采用AES 加密 Java端 package com.zk.web.u ...

  5. angular和JAVA实现aes、rsa加密解密,前后端交互,前端加解密和后端JAVA加解密实现

    今天实现了下AES和RSA加密解密,主要的功能是对前后端交互数据进行加密解密,为什么要用到两个算法呢,首先RSA默认的话加密长度是有限的100多个byte吧大约,并且需要公钥私钥,而AES加密没有限制 ...

  6. C#国密SM4 CBC加密解密

    ** C#国密SM4 CBC加密解密 在你得项目nuget引用程序集:KYSharp.SM 安装 2.0 版本,里面才有sm4的加密 ** static void Main(string[] args ...

  7. python aes 加盐 加密解密

    python aes 加盐 加密解密 爬虫就是在学习的过程,前几天从某网站的js里学到的加密方式,通过下断点弄清加密原理后,用python复现一下,在这里和大家分享下 #--------引入模块--- ...

  8. AES 128位CBC加密解密(不使用固定IV)

    安全检查时要求账号和密码加密后才能存到数据库中,要求加密算法如下: 1)分组密码算法:AES(密钥长度在128位及以上)(GCM或CBC模式) 2)流密码算法:AES(密钥长度在128位及以上)(OF ...

  9. AES CBC 加密解密(偏移量)

    参考文章:AES加密解密(ECB模式) 工具:在线AES加密解密 使用固定的key package com.eshore.cloud.utils;import android.text.TextUti ...

  10. AES CBC加密/解密

    简介 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的D ...

最新文章

  1. Mysql 修改 复杂的汇总_MySQL数据分析:复杂查询
  2. [学习笔记]03.字符串的扩展
  3. Linux之nginx配置文件的分析整理
  4. Go netpoller 网络模型之源码全面解析
  5. python自学笔记_python学习笔记(4)
  6. cc2530i2c可同时接受两个传感器的数据吗_汽车方向及维修_玉树沃尔沃S40方向机,宝马531电子方向机进水可以维修吗...
  7. 万字长文剖析 APM 系统?如何设计与实现?
  8. 微积分28-复合函数与隐函数的微分法
  9. css设置自适应屏幕高度
  10. gaster字体转换器_gaster语言翻译器
  11. 【python学习】python实现利用pygame绘画基本图形、显示图片,实现图形图片随机效果。python绘制行列图片
  12. TI 蓝牙4.0芯片 cc2540
  13. Random Walk 随机游走算法
  14. java.sql.SQLException: HOUR_OF_DAY: 2 -> 3
  15. 报错#vue-router#unknown custom element: <router-link> - did you register the component correctly?
  16. java jacob ocx_JAVA通过jacob调用ocx
  17. Linux下的常用命令(干货)
  18. Codec2入门:框架解析
  19. GBT25000.51-2016信息安全特性解读
  20. OSPF高级配置——NSSA区域与地址汇总

热门文章

  1. 美国ADP就业数据是什么?与非农有何关系
  2. 用于MPEG视频流的使能服务质量中间件
  3. OCR+NLP 提取信息并分析,这个开源项目火了!
  4. 清华提出:用于细粒度实体分类的Prompt-Learning,并提出可训练Prompt模板
  5. 基于编辑方法的文本生成(上)
  6. 基于论辩图谱的互动论点对识别
  7. 重磅!原清华副校长任职南科大校长:他考研三次,读博七年,想做科研人偶像...
  8. 【CV学习笔记】ROI与泛洪填充
  9. 一名南京985AI硕士,CSDN博客专家
  10. 【文末送书】在科研路上,大家有什么经验教训?