У меня возник вопрос, который явно тянет на клюкву.
Получил от заказчика задание сделать утилитку для закачки файлов с сервера с последующей их проверкой по контрольной сумме. Используется MD5, но это не важно.
Суммы для проверки хранятся в файле встроковом виде рядом с основными данными. Так вот, в этом файле указан и сам контрольный файл, и его MD5.
Сейчас начал делать по этой схеме данные для теста, но упомянутая задача привела меня в замешательство. Имеет ли она решение? Мне кажется, что нет. Проверил MD5 этого файла и значение не совпало с записанным в этом файле. Но, может алгоритм формирует разные строки?
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
04-10-2019 04:01 | Сообщение от автора вопроса
Да, это очень интересно! Но, это, скорее использование "дыр" в md5
И всё-таки можно я ваш мир поломаю немного. Немного потому, что в этой новости описано, как так получилось. Но поначалу выглядит как чудо. GIF, содержащий собственный MD5
Заказчик разрешил не проверять сумму этого файла. Что за значение там было записано не раскрыл. Для остальных файлов суммы совпали. Чудо не произошло, мир остался на месте. :)
Спасибо за ответ.
Я уже вчера подумал, что там записана сумма до добавления собственной суммы. Но тогда, чтобы проверить, надо выдернуть эти данные и только после этого вычислить сумму.
Короче, буду запрашивать заказчика о логике этой проверки. Или вообще не буду проверять именно этот файл.
Если контрольная сумма посчитана по изначальным данным, то для проверки нужно пересчитывать, естественно, только по ним, а не по всему файлу вместе со значением суммы
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.