С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
.NET 4.x

Почему меняется MD5-хэш файла при каждой компиляции, хотя вроде бы ничего не поменялось?

26.10.2015, 19:14. Показов 4284. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если компилятор игнорирует комментарии в коде, да и вообще ему (вроде) должно быть пофиг стоит у тебя TAB перед переменной или 3 пробела, то почему же меняется hash?

Добавлено через 2 минуты
Этот метод мне вообще при каждой компиляции новые значения давал
C#
1
2
3
4
5
6
7
8
 using (var md5 = MD5.Create())
            {
                String path = System.Reflection.Assembly.GetEntryAssembly().Location;
                using (var stream = File.OpenRead(path))
                {
                    UUU = BitConverter.ToString(md5.ComputeHash(stream)).Replace("-", "").ToLower();
                }
            }
Добавлено через 39 секунд
Этот ещё более менее постоянные. Но блин, добавил комент к методу - хэш другой. ПОЧЕМУ?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public string GetMD5HashOfAFile(string file)
        {
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            FileStream stream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read, 8192);
            md5.ComputeHash(stream);
            stream.Close();
 
            byte[] hash = md5.Hash;
            StringBuilder sb = new StringBuilder();
 
            foreach (byte b in hash)
            {
                sb.Append(string.Format("{0:X2}", b));
            }
 
            return sb.ToString();
        }
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.10.2015, 19:14
Ответы с готовыми решениями:

Почему при изменении условия цикла ничего не меняется?
Столкнулся с одним непонятным явлением в цикле. Для описания этого явления написал простенькую программку. #include <stdio.h> ...

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

Не отображается ничего в браузере, хотя код вроде бы рабочий
вот полный код, кто мог бы помочь, где именно ошибка <canvas id= "gc" width= "400" height="400"></canvas> <script> ...

7
Эксперт .NET
 Аватар для Rius
13052 / 7618 / 1664
Регистрация: 25.05.2015
Сообщений: 23,162
Записей в блоге: 14
26.10.2015, 19:20
Лучший ответ Сообщение было отмечено skilllab как решение

Решение

При каждой компиляции получается новый файл. Независимо от комментариев. Сравните их побайтово, после ребилда.
0
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
26.10.2015, 19:22  [ТС]
Оно то да. Только вот, если я, к примеру, хочу зашить хэш файла в сборку, чтоб его потом проверять, то как мне это сделать? если каждый раз при сборке этот хэш меняется.
0
Эксперт .NET
 Аватар для Rius
13052 / 7618 / 1664
Регистрация: 25.05.2015
Сообщений: 23,162
Записей в блоге: 14
26.10.2015, 19:25
Strong Names не подойдёт? С какой целью?
1
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
26.10.2015, 19:31  [ТС]
Может быть (а скорее всего так и есть ))) я выше тупанул.
Цитата Сообщение от Rius Посмотреть сообщение
Strong Names
где можно почитать про проверку сборки со строгим именем? В смысле не про само "строгое имя", а именно про проверку, как часть некоей защиты сборки.

Добавлено через 2 минуты
Опять же SN - это же просто для уникальности. Для GAС. От модификации никак не защищает. Это же вроде чтоб сборки с одинаковыми именами не попутались.
0
Эксперт .NET
 Аватар для Rius
13052 / 7618 / 1664
Регистрация: 25.05.2015
Сообщений: 23,162
Записей в блоге: 14
26.10.2015, 19:35
Это не защита. Скорее, для контроля версий библиотек и установки в GAC.
С какой целью вам понадобилось сохранять MD5 библиотек в коде программы?
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
26.10.2015, 19:35
Цитата Сообщение от skilllab Посмотреть сообщение
де можно почитать про проверку сборки со строгим именем?
Рихтер. 3 глава - там подробно описывается подписание файла сборки.
1
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
26.10.2015, 19:41  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
сохранять MD5 библиотек в коде программы
Хотя, может вы и правы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.10.2015, 19:41
Помогаю со студенческими работами здесь

MD5 хэш файла
Есть алгоритм рассчета MD5 unsigned char. Не подскажите как сделать рассчет файла?

Подсчитать хэш-функцию MD5 файла
Как узнать мд5 исполняемого файла? MD5File(Application.ExeName); - ошибка при запуске функции.

Почему строка, считанная из файла и такая же строка в программе не равны, хотя они, вроде бы, одинаковы?
Есть две строки. MSK="Москва" и from, считанная из текстовика, через getline Для проверки вывожу эти обе строки, на первый взгляд...

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru