Разница между C # cryptoSha256 и HashLib Sha256 - PullRequest
0 голосов
/ 03 октября 2018

Доброе утро, мне нужно зашифровать файл в режиме хеширования.

Я смотрю эту библиотеку, чтобы использовать

HashLibrary

Мой тестс локальным методом C # 256 и методом HashLib получают результаты различий,

                FileStream fileStream;
                SHA256 sha256 = SHA256Managed.Create();

                fileStream = new FileStream(localPath, FileMode.Open);
                fileStream.Position = 0;

                ///using System.Security.Cryptography;
                byte[] hashValue = sha256.ComputeHash(fileStream);
                string hash = ByteArrayToString(hashValue);

                #region using HashLib;
                //Run Hash
                IHash hash256 = HashFactory.Crypto.CreateSHA256();
                HashResult result256 = hash256.ComputeStream(fileStream);
                byte[] bytearray = result256.GetBytes();
                string stringtest = result256.ToString();
                stringtest = result256.ToString().Replace("-", "");
                #endregion

Результат первого метода

byte [] hashValue = 94,171,27,169,32,82,120,2,177,84, 58,6,216,77,110,239,85,282,75,159,183,85,70,208,22,146,201,22,47,122,153,74

строковый хэш = 5EAB1BA920527802B1543A06D84D6EEF55FC4B9FB75546D01692C * * * 101 * 107 * 9 * H * 107 *9162* 1021 *

var bytearray = 227,176,196,66,152,252,28,20,154,251,244,200,153,11,185,36,39,174,65,228,100,155,147,76,164,149,153,27,120,82,184,85

var stringtest = E3BF9F4F2C4F4C4F4C4F4104C4104C4104C4104C4104C4104F4104C4F4104C4F4104C4F4104C4F4104F3C4F4C4F4C4F3C4F3C4F4F4404F4R675-649B934C-A495991B-7852B855

Кто-нибудь может мне помочь?Я не понимаю, в чем проблема, почему результат отличается?

Я начинаю использовать эту библиотеку, потому что я не могу sha224, sha1 с System.Security.Cryptography

1 Ответ

0 голосов
/ 03 октября 2018

Вы уже прочитали все из потока, так что вы в конце потока.Создайте его заново для тестирования.Вторая строка - это общеизвестный хэш над пустым массивом (он же nuthin ').

Иногда легко проверить свои выходные данные по известным инструментам, таким как sha256sum.Например, пустой массив может быть протестирован следующим образом, если использовать обычную * nix-оболочку (например, Cygwin или подсистему Windows для Linux):

$ dd count=0 status=none | sha256sum -b | awk '{print $1}'
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...