/// AES加密
2 /// </summary>
3 /// <param>输入的数据</param>
4 /// <param>向量128位</param>
5 /// <param>加密密钥</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>输入的数据</param>
34 /// <param>向量128</param>
35 /// <param>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 }
相关文章
- c# aes 加密解密
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- C# 实现 JAVA AES加密解密[原创]
- C#实现的AES加密解密完整实例
- C# 128位AES 加密解密 (转)
- C#使用DES和AES实现加密解密功能示例
- C#代码实现对AES加密解密
- (转)C#实现RSA非对称加密解密
- C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)
- 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密