AES加密解密
1 public class AESEncryption
2 {
3 #region 加密
4 /// <summary>
5 /// 加密
6 /// </summary>
7 /// <param name="input">需要加密的字符串</param>
8 /// <param name="iv">向量</param>
9 /// <param name="key">密钥</param>
10 /// <returns>加密后base64编码字符串</returns>
11 public static String Encrypt(String input, String iv, String key)
12 {
13 Byte[] keyBytes = Convert.FromBase64String(key);
14 Byte[] ivBytes = Convert.FromBase64String(iv);
15 using (RijndaelManaged rm = new RijndaelManaged())
16 {
17 rm.Key = keyBytes;
18 rm.IV = ivBytes;
19 ICryptoTransform encryptor = rm.CreateEncryptor(rm.Key, rm.IV);
20 using (MemoryStream msEncrypt = new MemoryStream())
21 {
22 using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
23 {
24 using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
25 {
26 swEncrypt.Write(input);
27 }
28 Byte[] encrypted = msEncrypt.ToArray();
29 return Convert.ToBase64String(encrypted);
30 }
31 }
32 }
33 }
34 #endregion
35
36 #region 解密
37 /// <summary>
38 /// 解密
39 /// </summary>
40 /// <param name="input">需要解密的字符串</param>
41 /// <param name="iv">向量</param>
42 /// <param name="key">密钥</param>
43 /// <returns>加密之后的字符串</returns>
44 public static String Decrypt(String input, String iv, String key)
45 {
46 Byte[] inputBytes = Convert.FromBase64String(input);
47 Byte[] keyBytes = Convert.FromBase64String(key);
48 Byte[] ivBytes = Convert.FromBase64String(iv);
49 using (RijndaelManaged rm = new RijndaelManaged())
50 {
51 rm.Key = keyBytes;
52 rm.IV = ivBytes;
53 ICryptoTransform decryptor = rm.CreateDecryptor(rm.Key, rm.IV);
54 using (MemoryStream msDecrypt = new MemoryStream(inputBytes))
55 {
56 using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
57 {
58 using (StreamReader srDecrypt = new StreamReader(csDecrypt))
59 {
60 return srDecrypt.ReadToEnd();
61 }
62 }
63 }
64 }
65 }
66 #endregion
67 }
转载于//www.cnblogs.com/hugeboke/p/11574663.html
还没有评论,来说两句吧...