C#中使用定时器控制的加密时间

时间:2018-05-03 16:23:48

标签: c# encryption

我的问题是我想在三重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 :(得分:0)

您不应该使用Timer来跟踪事情需要多长时间。 Timer设置为在一个时间间隔上调用代码(例如;实时更新该文本框)。

另一方面,

Stopwatch专门用于进行高精度的操作时序。在这种情况下你应该使用它:

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

TimeSpan duration = stopwatch.Elapsed;
//Do something with duration