время шифрования с использованием таймера в C # - PullRequest
0 голосов
/ 03 мая 2018

Моя проблема в том, что я хочу вычислить время шифрования в тройном DES. Я поместил элемент управления таймером в форму, как показано ниже, но проблема в том, что он продолжает считать даже шифрование, заканчивается. Как я могу остановить управление таймером, когда он считает время шифрования?

enter image description here

        timer1.Enabled = true;
        timer1.Start();


          //3DES ENCRYPTION 

        MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
        UTF8Encoding utf8 = new UTF8Encoding();
        TripleDESCryptoServiceProvider tDES = new TripleDESCryptoServiceProvider();
        tDES.Key = md5.ComputeHash(utf8.GetBytes(textBox1.Text));
        //to decrypt the data we must use these two property 
        tDES.Mode = CipherMode.ECB;
        tDES.Padding = PaddingMode.PKCS7;

        //this is interface to encrypt our data 
        ICryptoTransform trans = tDES.CreateEncryptor();
        encrypted = trans.TransformFinalBlock(utf8.GetBytes(textBox2.Text), 0, utf8.GetBytes(textBox2.Text).Length);
        textBox3.Text = BitConverter.ToString(encrypted);

1 Ответ

0 голосов
/ 03 мая 2018

Вы не должны использовать Timer для отслеживания того, сколько времени занимает что-то. Timer настроен для вызова кода с интервалом (скажем, обновление этого текстового поля в режиме реального времени).

Stopwatch, с другой стороны, специально разработан для выполнения высокоточных сроков операций. Вы должны использовать это в этом случае:

Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
//Operations
stopwatch.Stop();

TimeSpan duration = stopwatch.Elapsed;
//Do something with duration
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...