12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- using System.IO;
- using System.Security.Cryptography;
- using System.Text;
-
- namespace Teknik.Utilities.Cryptography
- {
- public static class AES
- {
- public static byte[] Encrypt(byte[] value, byte[] key, byte[] iv, int keyLength, int blockLength, int feedbackSize, CipherMode mode, PaddingMode paddingMode)
- {
- using (var cipher = CreateCipher(key, iv, keyLength, blockLength, feedbackSize, mode, paddingMode))
- {
- return Encrypt(cipher, value);
- }
- }
- public static byte[] Decrypt(byte[] value, byte[] key, byte[] iv, int keyLength, int blockLength, int feedbackSize, CipherMode mode, PaddingMode paddingMode)
- {
- using (var cipher = CreateCipher(key, iv, keyLength, blockLength, feedbackSize, mode, paddingMode))
- {
- return Decrypt(cipher, value);
- }
- }
-
- public static byte[] Encrypt(RijndaelManaged cipher, byte[] value)
- {
- byte[] encryptedBytes;
- using (var encryptor = cipher.CreateEncryptor())
- using (MemoryStream ms = new MemoryStream())
- using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
- using (var bw = new BinaryWriter(cs, Encoding.UTF8))
- {
- bw.Write(value);
- bw.Close();
-
- encryptedBytes = ms.ToArray();
- }
- return encryptedBytes;
- }
-
- public static byte[] Decrypt(RijndaelManaged cipher, byte[] value)
- {
- byte[] decryptedBytes;
- using (var decryptor = cipher.CreateDecryptor())
- using (MemoryStream ms = new MemoryStream())
- using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Write))
- using (var bw = new BinaryWriter(cs, Encoding.UTF8))
- {
- bw.Write(value);
- bw.Close();
-
- decryptedBytes = ms.ToArray();
- }
- return decryptedBytes;
- }
-
- public static RijndaelManaged CreateCipher(byte[] key, byte[] iv, int keyLength, int blockSize, int feedbackSize, CipherMode mode, PaddingMode paddingMode)
- {
- RijndaelManaged cipher = new RijndaelManaged();
- cipher.Mode = mode;
- cipher.Padding = paddingMode;
- cipher.Key = key;
- cipher.IV = iv;
- cipher.KeySize = keyLength;
- cipher.BlockSize = blockSize;
- cipher.FeedbackSize = feedbackSize;
-
- return cipher;
- }
- }
- }
|