SHA-1 Хеширование загруженного xls файла всегда отличается, с хэшированием csv файла работает - PullRequest
0 голосов
/ 24 февраля 2011

У меня возникла следующая проблема. Я загружаю CSV и Excel файлы через службу WCF. Расчет хеша работает только для CSV-файлов. С файлами xls я получаю разные значения при каждой загрузке.

Расчет хеша:

            using (FileStream file = new FileStream(datei.FullName, FileMode.Open))
            {
                var sha1 = new SHA1CryptoServiceProvider();
                byte[] retVal = sha1.ComputeHash(file);
                var sb = new StringBuilder();
                foreach (var b in retVal)
                    sb.Append(b.ToString("x2"));

                return sb.ToString();
            }

Кто-нибудь знает, где может быть проблема? Это проблема с двоичным форматом файла xls?

Любая помощь очень ценится.

Marius

1 Ответ

2 голосов
/ 24 февраля 2011

Я сильно подозреваю, что файл на самом деле каждый раз отличается . Это достаточно легко проверить - существуют различные бесплатные инструменты для выполнения контрольных сумм / хэшей. Вы можете выбрать SHA1 и сравнить его с собственными результатами или использовать инструмент MD5 и т. Д.

Попробуйте запустить его как на стороне клиента, так и на стороне сервера - таким образом, вы сможете убедиться, что сам файл не был поврежден при передаче.

После того, как вы точно определите, где и когда файл изменился, вам нужно решить, что с этим делать. Например, если Excel имеет значение , добавляющее временную метку, вы можете захотеть замаскировать ее при вычислении хэша.

...