1. using System.IO;
    2. using System.Security.Cryptography;
    3. using System;
    4. public static class DataTableEncryptUtility
    5. {
    6. private static byte[] Key = new byte[32] { 20, 112, 118, 231, 185, 252, 25, 22, 10, 214, 124, 12, 160, 84, 221, 225, 114, 92, 65, 32, 121, 7, 53, 234, 17, 175, 164, 189, 153, 170, 174, 110 };// 32 bytes for AES-256
    7. private static byte[] IV = new byte[16] { 88, 22, 139, 249, 198, 81, 60, 252, 23, 191, 76, 129, 81, 79, 184, 27 }; // 16 bytes
    8. public static string Encrypt(string plainText)
    9. {
    10. byte[] encrypted;
    11. using (Aes aesAlg = Aes.Create())
    12. {
    13. aesAlg.Key = Key;
    14. aesAlg.IV = IV;
    15. ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
    16. using (MemoryStream msEncrypt = new MemoryStream())
    17. {
    18. using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
    19. {
    20. using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
    21. {
    22. swEncrypt.Write(plainText);
    23. }
    24. encrypted = msEncrypt.ToArray();
    25. }
    26. }
    27. }
    28. return Convert.ToBase64String(encrypted);
    29. }
    30. public static string Decrypt(string cipherText)
    31. {
    32. byte[] cipherBytes = Convert.FromBase64String(cipherText);
    33. using (Aes aesAlg = Aes.Create())
    34. {
    35. aesAlg.Key = Key;
    36. aesAlg.IV = IV;
    37. ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
    38. using (MemoryStream msDecrypt = new MemoryStream(cipherBytes))
    39. {
    40. using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
    41. {
    42. using (StreamReader srDecrypt = new StreamReader(csDecrypt))
    43. {
    44. return srDecrypt.ReadToEnd();
    45. }
    46. }
    47. }
    48. }
    49. }
    50. }