Создайте хеш SHA и сравните его, когда источник переместился - PullRequest
0 голосов
/ 12 февраля 2019

Я создал простую программу на C #, которая может хэшировать файл (я концентрируюсь на изображениях, в отличие от PDF, текста и т. Д.), Который отображает хеш только в командной строке.Я создам функцию для вывода файла (не знаете, какого типа?), Чтобы на него можно было ссылаться позже.

Идея состоит в том, что изображение будет перемещаться из одного места в другое, и как только оно достигнет второго пункта назначенияэто будет проверено программой хэширования еще раз, найдет связанный с ним хеш-файл, сравнит его и затем выдаст результат (т. е. он идентичен или нет).Код, который у меня есть, не очень актуален, поэтому я и не опубликовал его - в основном я просто ищу советы / подсказки или любую документацию, которая может быть здесь полезна!

Заранее спасибо.

Редактировать: код важен, поэтому вот он

using System;
using System.IO;
using System.Security.Cryptography;

class Hash
{
    static void Main(string[] args)
    {
        if (args.Length != 2)
        {
            byte[] hashValue = null;
            if (!File.Exists(args[1]))
            {
                try
                {
                    FileStream fileStream = File.OpenRead(args[1]);
                    fileStream.Position = 0;
                    switch (args[0].ToUpper())
                    {
                        case "SHA512":
                            // Compute the SHA512 hash of the fileStream.
                            hashValue = SHA512.Create().ComputeHash(fileStream);
                            return;
                    }
                    if (hashValue != null)
                    {
                        PrintHashData(args[0].ToUpper(), fileStream.Name, hashValue);
                    }
                    fileStream.Close();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: {0}", ex.Message);
                }
            }
        }
    }

    private static void PrintHashData(string algorithm, string fileName, byte[] array)
    {
        Console.Write("File: {0}\r\n{1} Hash: ", fileName, algorithm);
        for (int i = 0; i < array.Length; i++)
        {
            Console.Write(String.Format("{0:X2}", array[i]));
        }
        Console.WriteLine();
    }
}
...