Mega Code Archive

 
Categories / C# / Security
 

EncryptDecrypt String To Bytes

using System; using System.IO; using System.Security.Cryptography; namespace PS_WSSDeploy_Package.Utils {     class Crypto     {         public static byte[] EncryptStringToBytes_AES(string plainText, byte[] key, byte[] iv)         {             if (string.IsNullOrEmpty(plainText))                 throw new ArgumentNullException("plainText");             if (key == null || key.Length <= 0)                 throw new ArgumentNullException("key");             if (iv == null || iv.Length <= 0)                 throw new ArgumentNullException("key");             MemoryStream msEncrypt;             RijndaelManaged aesAlg = null;             try             {                 aesAlg = new RijndaelManaged();                 aesAlg.Key = key;                 aesAlg.IV = iv;                 ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);                 msEncrypt = new MemoryStream();                 using (var csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))                 {                     using (var swEncrypt = new StreamWriter(csEncrypt))                     {                         swEncrypt.Write(plainText);                     }                 }             }             finally             {                 if (aesAlg != null)                 {                     aesAlg.Clear();                 }             }             return msEncrypt.ToArray();         }         public static string DecryptStringFromBytes_AES(byte[] cipherText, byte[] Key, byte[] IV)         {             if (cipherText == null || cipherText.Length <= 0)                 throw new ArgumentNullException("cipherText");             if (Key == null || Key.Length <= 0)                 throw new ArgumentNullException("Key");             if (IV == null || IV.Length <= 0)                 throw new ArgumentNullException("Key");             RijndaelManaged aesAlg = null;             string plaintext = null;             try             {                 aesAlg = new RijndaelManaged();                 aesAlg.Key = Key;                 aesAlg.IV = IV;                 var decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);                 using (var msDecrypt = new MemoryStream(cipherText))                 {                     using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))                     {                         using (var srDecrypt = new StreamReader(csDecrypt))                         {                             plaintext = srDecrypt.ReadToEnd();                         }                     }                 }             }             finally             {                 if (aesAlg != null)                 {                     aesAlg.Clear();                 }             }             return plaintext;         }     } }