· 6 years ago · Oct 19, 2019, 04:00 PM
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Security.Cryptography;
6
7/**
8 *
9 * @author fguaman
10 */
11public abstract class AES
12{
13 public static String doEncryptAES(String plainText, String key)
14 {
15 var plainBytes = Encoding.UTF8.GetBytes(plainText);
16 return Convert.ToBase64String(Encrypt(plainBytes, getRijndaelManaged(key)));
17 }
18
19 public static String doDecryptAES(String encryptedText, String key)
20 {
21 var encryptedBytes = Convert.FromBase64String(encryptedText);
22 return Encoding.UTF8.GetString(Decrypt(encryptedBytes, getRijndaelManaged(key)));
23 }
24
25 private static RijndaelManaged getRijndaelManaged(String secretKey)
26 {
27 var keyBytes = new byte[16];
28 var secretKeyBytes = Encoding.UTF8.GetBytes(secretKey);
29 Array.Copy(secretKeyBytes, keyBytes, Math.Min(keyBytes.Length, secretKeyBytes.Length));
30 return new RijndaelManaged
31 {
32 Mode = CipherMode.CBC,
33 Padding = PaddingMode.PKCS7,
34 KeySize = 128,
35 BlockSize = 128,
36 Key = keyBytes,
37 IV = keyBytes
38 };
39 }
40
41 private static byte[] Encrypt(byte[] plainBytes, RijndaelManaged rijndaelManaged)
42 {
43 return rijndaelManaged.CreateEncryptor()
44 .TransformFinalBlock(plainBytes, 0, plainBytes.Length);
45 }
46
47 private static byte[] Decrypt(byte[] encryptedData, RijndaelManaged rijndaelManaged)
48 {
49 return rijndaelManaged.CreateDecryptor()
50 .TransformFinalBlock(encryptedData, 0, encryptedData.Length);
51 }
52
53}