Шифрование файлов с помощью Rijndael - PullRequest
0 голосов
/ 09 февраля 2019

Я делаю программу для шифрования файлов. Я хочу иметь свой метод для шифрования файлов с помощью Rijndael в dll . Но когда я добавляю его в dll, команда

Application.DoEvents ();

не работает. Есть еще один метод для шифрования с Rijndael без использования Application.DoEvents ();

1 Ответ

0 голосов
/ 09 февраля 2019

Шифрование с помощью Rijndael без использования Application.DoEvents ()

Хотя я не понимаю, зачем вам это нужно, но да, вы можете сделать следующее:

using (System.Security.Cryptography.Rijndael rijndael = System.Security.Cryptography.Rijndael.Create()) {

    rijndael.GenerateKey();
    // Set your Key 
    // rijndael.Key = key;
    rijndael.GenerateIV();
    // Set your IV
    // rijndael.IV = iv;
    rijndael.BlockSize = 256; // this is what makes it different from AES
    using (System.Security.Cryptography.ICryptoTransform transform = rijndael.CreateEncryptor()) {
        var fileToBeEncrypted = System.IO.File.ReadAllBytes("Path");
        transform.TransformFinalBlock(fileToBeEncrypted, 0, fileToBeEncrypted.Length);
    }
}

Если ваш файл большой, то такой подход не будет очень эффективным.В этом случае вам лучше использовать поток, подобный следующему:

using (System.IO.FileStream inputFs = new System.IO.FileStream("inputPath", System.IO.FileMode.Open))
{
    using (System.Security.Cryptography.CryptoStream cs = new System.Security.Cryptography.CryptoStream(inputFs, rijndael.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Read)) {
        using (System.IO.FileStream outputFs = new System.IO.FileStream("outputPath", System.IO.FileMode.CreateNew)) {
            cs.CopyTo(outputFs);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...