Skip to content

Commit d68b205

Browse files
committed
Add decrypt method
1 parent fe91dda commit d68b205

1 file changed

Lines changed: 26 additions & 4 deletions

File tree

Encrypt/AesEncryption/BaseAesEncryption.cs

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,32 @@ public virtual byte[] EncryptAES(byte[] data, byte[] key, byte[] iv)
3434
}
3535
}
3636

37-
// Method to generate a random byte array of given length
38-
// Used to get the IV
39-
// Generate a random 16-byte IV for AES in CBC mode
40-
public static byte[] GenerateRandomBytes(int length)
37+
// Method to decrypt data using AES algorithm
38+
public static byte[] DecryptAES(byte[] encryptedData, byte[] key, byte[] iv)
39+
{
40+
using (Aes aes = Aes.Create())
41+
{
42+
aes.Key = key;
43+
aes.IV = iv;
44+
ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
45+
using (MemoryStream memoryStream = new MemoryStream(encryptedData))
46+
{
47+
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read))
48+
{
49+
using (MemoryStream decryptedStream = new MemoryStream())
50+
{
51+
cryptoStream.CopyTo(decryptedStream);
52+
return decryptedStream.ToArray();
53+
}
54+
}
55+
}
56+
}
57+
}
58+
59+
// Method to generate a random byte array of given length
60+
// Used to get the IV
61+
// Generate a random 16-byte IV for AES in CBC mode
62+
public static byte[] GenerateRandomBytes(int length)
4163
{
4264
byte[] randomBytes = new byte[length];
4365
using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())

0 commit comments

Comments
 (0)