博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 128位AES 加密解密 (转)
阅读量:6318 次
发布时间:2019-06-22

本文共 1614 字,大约阅读时间需要 5 分钟。

/// AES加密

2         /// </summary>
3         /// <param name="inputdata">输入的数据</param>
4         /// <param name="iv">向量128位</param>
5         /// <param name="strKey">加密密钥</param>
6         /// <returns></returns>
7         public static byte[] AESEncrypt(byte[] inputdata, byte[] iv, string strKey)
8         {
9             //分组加密算法  
10             SymmetricAlgorithm des = Rijndael.Create();
11             byte[] inputByteArray = inputdata;//得到需要加密的字节数组      
12             //设置密钥及密钥向量
13             des.Key = Encoding.UTF8.GetBytes(strKey.Substring(0, 32));
14             des.IV = iv;
15             using (MemoryStream ms = new MemoryStream())
16             {
17                 using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
18                 {
19                     cs.Write(inputByteArray, 0, inputByteArray.Length);
20                     cs.FlushFinalBlock();
21                     byte[] cipherBytes = ms.ToArray();//得到加密后的字节数组  
22                     cs.Close();
23                     ms.Close();                  
24                     return cipherBytes;
25                 }
26             }
27         }
28
29
30         /// <summary>
31         /// AES解密
32         /// </summary>
33         /// <param name="inputdata">输入的数据</param>
34         /// <param name="iv">向量128</param>
35         /// <param name="strKey">key</param>
36         /// <returns></returns>
37         public static byte[] AESDecrypt(byte[] inputdata, byte[] iv, string strKey)
38         {
39             SymmetricAlgorithm des = Rijndael.Create();
40             des.Key = Encoding.UTF8.GetBytes(strKey.Substring(0, 32));
41             des.IV = iv;
42             byte[] decryptBytes = new byte[inputdata.Length];
43             using (MemoryStream ms = new MemoryStream(inputdata))
44             {
45                 using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read))
46                 {
47                     cs.Read(decryptBytes, 0, decryptBytes.Length);
48                     cs.Close();
49                     ms.Close();
50                 }
51             }
52             return decryptBytes;
53         }

转载于:https://www.cnblogs.com/jason-davis/p/5960636.html

你可能感兴趣的文章
浅谈C# 中的lock 方法与Monitor 类的关系_以及同步与互斥
查看>>
仿Google首页搜索自动补全!(原创分享jQuery版)
查看>>
tkinter的GUI设计:界面与逻辑分离(三)-- 多页面
查看>>
CHM 打开时提示 已取消到该网页的导航
查看>>
软件(代码)开源,协议声明
查看>>
java web开发人员经常使用标签
查看>>
修改linux的最大文件句柄数限制
查看>>
基于zepto的移动端日期+时间选择插件
查看>>
JDK5.0新特性系列---11.1线程 Callable和Future
查看>>
QTP的那些事--VBS函数大全
查看>>
爆牙齿的世界杯日记(小组次轮)
查看>>
09.移动先行之谁主沉浮----控件之轮流轰炸——高级控件
查看>>
Hibernate 缓存机制浅析
查看>>
Hadoop Hive概念学习系列之hive里的桶(十一)
查看>>
前端应聘要准备些什么样子的作品?
查看>>
ACM_几何] Metal Cutting(POJ1514)半平面割与全排暴力切割方案
查看>>
jquery easyui datagrid使用参考
查看>>
.NET开发之快捷键篇
查看>>
Python WMI获取Windows系统信息 监控系统
查看>>
VBS函数应用--getobject的使用获得Automation对象
查看>>