We are getting the encrypted file (Rijndael Algorithm).
We need to decrypt these files is load it into the database.
We have an encrypted file that is not a human-readable file.
Here I will
decrypt this file using System.Security.Cryptography (Rijndael Algorithm).
I am taking script task. We need to write the below code (in
this demo I am decrypting the file which is encrypted by above example post https://bageshkumarbagi-msbi.blogspot.com/2019/10/encrypt-files-using-systemsecuritycrypt.html
)
We need to
include below namespaces
- using System.Security.Cryptography;
- using System.IO;
Below is the C# code
// Open filestream for encrypted source file
FileStream
fsIn = new FileStream(@"J:\SSIS1\Source\sales_10062019__ENCRYPTED.csv", FileMode.Open, FileAccess.Read);
// Open filestream for decrypted file
FileStream
fsOut = new FileStream(@"J:\SSIS1\Source\sales_10062019_DECRYPTED.csv", FileMode.OpenOrCreate, FileAccess.Write);
string encryptionKey = "Bagesh"; //Encryption key
// Create Key and IV from the password with salt technique
PasswordDeriveBytes pdb = new PasswordDeriveBytes(encryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65,
0x64, 0x65, 0x76 });
// Create a symmetric
algorithm with Rijndael
Rijndael alg =
Rijndael.Create();
// Set Key and IV
alg.Key =
pdb.GetBytes(32);
alg.IV =
pdb.GetBytes(16);
CryptoStream
cs = new CryptoStream(fsOut,
alg.CreateDecryptor(), CryptoStreamMode.Write);
int bufferLen = 4096;
byte[] buffer = new byte[bufferLen];
int bytesRead;
do
{ // read a chunk of data
from the input file
bytesRead
= fsIn.Read(buffer, 0, bufferLen);
// Decrypt it
cs.Write(buffer, 0, bytesRead);
} while (bytesRead != 0);
cs.Close();
fsIn.Close();
|
Compile and save and close this window.
Note:
for the encryption and decryption, we need to use the same encryption Key
Now I am running this
package.
Executed successfully.
Now we can read this file.