Вычисленные контрольные суммы различны для идентичного содержимого массива байтов - PullRequest
0 голосов
/ 25 сентября 2019

С тем же байтовым массивом результат выполнения контрольной суммы с использованием класса SHA512Managed в .NET Core 3.0 отличается от результата использования встроенного приложения shasum в MacOS.

У меня тройной-проверенный байтовый массив является неизменным / идентичным путем итерации по каждой позиции байта с использованием File.ReadAllBytes ().

Процесс в коде:

var stream = asm.GetManifestResourceStream(resourceName);
var data = new byte[stream.Length];
stream.Read(data, 0, (int)stream.Length);
var sha = new SHA512Managed();
var checksum = sha.ComputeHash(data);

В командной строке:

shasum -a512 ./myfile.dat

Я получаю хорошее (ожидаемое) значение контрольной суммы из утилиты shasum, приложения iHex из AppStore и веб-сайта "passwordsgenerator.net/sha512-hash-generator/".

Я получаю неверное значение из кода .NET выше и с другого сайта "online-convert.com".Оба из них дают одинаковый плохой результат!

Существует ли более одной реализации алгоритма SHA512?Поскольку я сравниваю байтовые массивы, не должно быть чепухи, связанной с кодировкой символов, верно?Есть ли что-то о компиляции или чтении встроенного ресурса в MacOS, о котором я должен знать?

Буду признателен за любые советы или указатели!

...