Beispiel #1
0
        private async void HashProcessing(string fileToHash)
        {
            btBrowse.Enabled = btMD5.Enabled = btSHA1.Enabled = btSHA256.Enabled = btSHA512.Enabled = false;
            tbMD5.Text       = tbSHA1.Text = tbSHA256.Text = tbSHA512.Text = tbTimeToCalculateMD5.Text = tbTimeToCalculateSHA1.Text = tbTimeToCalculateSHA256.Text = tbTimeToCalculateSHA512.Text = string.Empty;
            UpdateForm(fileToHash);

            long totalElapsed = 0;

            totalResult = fileWithHash = string.Empty;

            tsStatus.Text = "Création des empreintes en cours...";
            try { totalElapsed = await GetHashes(fileToHash); }
            catch (Exception) { MessageBox.Show("Une erreur s'est produite lors du calcul de l'empreinte", "Erreur : Calcul de l'empreinte", MessageBoxButtons.OK, MessageBoxIcon.Error); }

            totalResult   = ValuesTools.elapsedToString(totalElapsed);
            tsStatus.Text = string.Format("Création des empreintes terminée en {0} - Vérification en cours...", totalResult);

            KeyValuePair <string, string> results = new KeyValuePair <string, string>(string.Empty, string.Empty);

            try { results = HashToolkit.VerifyFile(fileToHash, tbMD5.Text, tbSHA1.Text, tbSHA256.Text, tbSHA512.Text); }
            catch (Exception) { MessageBox.Show("Une erreur s'est produite lors de la vérification de l'empreinte", "Erreur : vérification de l'empreinte", MessageBoxButtons.OK, MessageBoxIcon.Error); }

            string algoUsed = results.Key;

            fileWithHash  = results.Value;
            tsStatus.Text = (string.IsNullOrEmpty(algoUsed)) ?
                            string.Format("Création des empreintes terminée en {0} : aucun fichier d'empreinte trouvé", totalResult) :
                            string.Format("Création des empreintes terminée en {0}  : fichier conforme à son empreinte {1}", totalResult, algoUsed);

            btBrowse.Enabled = true;
            UpdateForm(fileToHash);
        }
Beispiel #2
0
        private void sauvegarderLesEmpreintesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.InitialDirectory = (Directory.Exists(Path.GetDirectoryName(tbFilePath.Text))) ? Path.GetDirectoryName(tbFilePath.Text) : Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
            sfd.FileName         = Path.GetFileNameWithoutExtension(tbFilePath.Text) + "-CHECKSUM";

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    HashToolkit.SaveHashesFile(tbMD5.Text, tbSHA1.Text, tbSHA256.Text, tbSHA512.Text, Path.GetFileName(tbFilePath.Text), sfd.FileName);
                }
                catch (Exception) { MessageBox.Show("Une erreur s'est produite lors de l'écriture du fichier", "Erreur : Ecriture du fichier", MessageBoxButtons.OK, MessageBoxIcon.Error); }
            }
        }
Beispiel #3
0
        private async Task <long> GetHashes(string fileToHash)
        {
            long      totalElapsed = 0;
            Stopwatch sw           = new Stopwatch();

            sw.Start();
            tbMD5.Text = await Task.Run(() => HashToolkit.GetHash(HashToolkit.Algorithms.MD5, fileToHash));

            sw.Stop();

            totalElapsed += sw.ElapsedMilliseconds;
            tbTimeToCalculateMD5.Text = string.Format("{0}", ValuesTools.elapsedToString(sw.ElapsedMilliseconds));

            sw.Restart();
            tbSHA1.Text = await Task.Run(() => HashToolkit.GetHash(HashToolkit.Algorithms.SHA1, fileToHash));

            sw.Stop();

            totalElapsed += sw.ElapsedMilliseconds;
            tbTimeToCalculateSHA1.Text = string.Format("{0}", ValuesTools.elapsedToString(sw.ElapsedMilliseconds));

            sw.Restart();
            tbSHA256.Text = await Task.Run(() => HashToolkit.GetHash(HashToolkit.Algorithms.SHA256, fileToHash));

            sw.Stop();

            totalElapsed += sw.ElapsedMilliseconds;
            tbTimeToCalculateSHA256.Text = string.Format("{0}", ValuesTools.elapsedToString(sw.ElapsedMilliseconds));

            sw.Restart();
            tbSHA512.Text = await Task.Run(() => HashToolkit.GetHash(HashToolkit.Algorithms.SHA512, fileToHash));

            sw.Stop();

            totalElapsed += sw.ElapsedMilliseconds;
            tbTimeToCalculateSHA512.Text = string.Format("{0} s", ValuesTools.elapsedToString(sw.ElapsedMilliseconds));

            return(totalElapsed);
        }