vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Берем и подсовываем человеку, который занимается, ну скажем разработкой библиотеки для работы с графическими файлами, два файла, дающие коллизию md5. И говорим "ой чтой-то два одинаковых до бита файла по-разному отображаются".

Правда, я бы если бы такое делал не стал бы использовать для этого формат ppm. Больно уж он простой.
Гораздо лучше взять jpg, png или tiff, куда действительно можно какой угодно фигни в неотображаемые блоки напихать без нарушения формата.

С другой стороны, поверить что в PPM-е возможна коллизия - еще сложнее. Человек, который знает как устроен формат PPM, пожалуй, даже не подумает сверить размеры файлов с информацией из загловка.

Я не утверждаю, что над Тутубалиным пошутили именно таким способом. Но проверить эту гипотезу я ему предложил.

А вообще идея клевая. Действительно, любой более-менее квалифицированный программист знает что такое MD5, но только профессиональные параноики и криптографы помнят, что вообще-то коллизии генерятся достаточно легко.
Поэтому вряд ли человек начнет с того, что будет проверять, правда ли файлы, имеющие одинаковую md5, побитово совпадают.

Date: 2012-04-06 12:57 pm (UTC)
nasse: (Default)
From: [personal profile] nasse
А как сгенерить коллизию?

Date: 2012-04-06 12:59 pm (UTC)
city_rat: (Default)
From: [personal profile] city_rat
По-моему, как раз только профессиональный... не знаю кто, но отморожен должен быть на полную голову, - начнет проверку идентичности файлов с генерации md5.

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

Date: 2012-04-06 01:16 pm (UTC)
city_rat: (Default)
From: [personal profile] city_rat
Этот вариант я как раз и назвал "фишка так легла". Ну т.е. если версия об идентичности файла изначально была подкреплена представлением md5 или еще какого хэша: вбросили так, или изучаемая система автоматом генерит хэши за какой-то надобностью.

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

Date: 2012-04-06 01:09 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
А в чём шутка? Человек должен использовать файловую систему с автоматической дедупликацией на основе md5?

Date: 2012-04-06 01:18 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
С чего же это они одинаковые?

Date: 2012-04-06 01:21 pm (UTC)
dzz: Dizzy の冬 (Default)
From: [personal profile] dzz
Ну, кто же будет проводить побайтовое сравнение при совпадении md5?
Кроме тех, разумеется, кто сталкивался с коллизиями раньше.

Date: 2012-04-06 01:33 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Нет, это каким одарённым нужно быть программистом, чтобы считать md5 для того, чтобы только сравнить два файла? Хотя, конечно, профессия не гарантирует ни высокого ума, ни образования.

P. S. Как же задолбал этот ШМ, снова требующий OpenID через пять минут после того, как я предоставил его. Все хорошие новости СУПа не раздражают больше.

Date: 2012-04-06 01:41 pm (UTC)
dzz: Dizzy の冬 (Default)
From: [personal profile] dzz
Ну, если файлы, к примеру, имеют одинаковый размер и совпадающую "обозримую" порцию байт в начале и в конце, то сравнить хэш - вполне логичный шаг даже при наличии ума и образования. Тем более, что это, как и побайтное сравнение, делается одной командой.

Date: 2012-04-06 02:05 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Нет, это совершенно нелогичный шаг. В любом случае нужно прочитать каждый байт. И я знаю, как сравнить файлы одной командой побайтово (а если бы и не знал, любой, занимающийся программированием хотя бы полгода, напишет свой велосипед), а как сравнить их, посчитав md5?

Date: 2012-04-06 02:07 pm (UTC)
dzz: Dizzy の冬 (Default)
From: [personal profile] dzz
> а как сравнить их, посчитав md5?

всё написано до нас ;)

# for i in file1 file2; do md5sum $i; done

Date: 2012-04-06 02:08 pm (UTC)
dzz: Dizzy の冬 (Default)
From: [personal profile] dzz
Несовпадение md5 - это верный признак различия файлов. Проблема в том, что совпадение md5 НЕ ВСЕГДА означает их совпадение. Хотя в подавляющем большинстве случаев таки означает.

Date: 2012-04-06 02:44 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Это только считает md5-суммы, я спрашивал о команде, которая использует md5 для того, чтобы сказать, что файлы одинаковы.

Кстати, как вы собираетесь сравнивать md5-суммы? Посчитать от них md5-суммы и дальше по рекурсии?

Date: 2012-04-06 07:19 pm (UTC)
dzz: Dizzy の冬 (Default)
From: [personal profile] dzz
> Кстати, как вы собираетесь сравнивать md5-суммы? Посчитать от них md5-суммы и дальше по рекурсии?

Вы не поверите... Глазками. Размер итогового хэша - 32 шестнадцатиричных разряда.

Date: 2012-04-06 02:59 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
При чём здесь коллизия? Возможны более вероятные причины, и они в комментариях озвучены.

А md5… Человек, я так понимаю, совсем не программист.

Date: 2012-04-06 05:47 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
А чем же я эти .ppm-файлы тогда породил, как не собственной программой?

Date: 2012-04-06 06:07 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Э-э-э… Откуда получены файлы мне было неизвестно. Но меня удивляет, что кто-то считает md5 для того, чтобы проверить, что файлы одинаковы. Тем более о fc /b вы знаете, зачем md5?

Date: 2012-04-06 06:15 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
Привычка.
Когда файлов 10 (5 пар), проще md5 *ppm | awk '{print $1}' | sort | uniq -c | grep -v '^2' (и выдаст что-то только если есть разница)

А когда их ~600 (большой тестовый набор, 300 эталонов и 300 результатов прогона) общим объемом больше 10Gb, то md5 банально быстрее в разы т.к. эталоны можно просто не считывать с диска (и не хранить), их md5 не меняется.

Ну и соответственно, когда файлов всего 2 - проще тоже md5 и последние 3-4 цифры на глазок сравнить. Коллизии в моем случае (генерация моим кодом) настолько невероятны, что я пренебрегаю.

Date: 2012-04-06 06:32 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Ну да, это разумная причина.

uniq -u

Date: 2012-04-06 05:47 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
Ну вот лично мне с трудом верится, что те несколько кусочков кода, которые я переписал на SSE вдруг ВНЕЗАПНО породили другой output, но с тем же MD5.
Было бы весьма удивительно.

Оба сравниваемых ppm порождены моей программой.

P.S. Анальное огораживание в этом аналоге ЖЖ меня удивляет.

Date: 2012-04-06 05:48 pm (UTC)
From: [identity profile] alextutubalin.livejournal.com
Осталось выяснить, кто именно надо мной пошутил. Зеркало?

Date: 2012-04-06 06:08 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
ACDSee, естественно.

Date: 2012-04-07 02:44 am (UTC)
From: [identity profile] lamantyn.livejournal.com
А-Леха или У-Леха.

Date: 2012-04-06 01:18 pm (UTC)
dzz: Dizzy の冬 (Default)
From: [personal profile] dzz
Ну, я бы первым делом проверил идентичность ДРУГИХ хэш-функций от файла. В одновременную коллизию md5, sha-1 и crc32 я как-то слабо верю ;)

Date: 2012-04-06 05:24 pm (UTC)
From: [personal profile] dragonru
Ну, он там в комментах пишет, что и побайтово их сравнивал - все равно одинаковые.

Date: 2012-04-06 05:58 pm (UTC)
slobin: (Default)
From: [personal profile] slobin
Самая лучшая первоапрельская шутка этого года, на мой взгляд, вот эта: отправить авторам системы компьютерной алгебры багрепорт, что первые восемь членов некоторой последовательности она считает правильно, а на девятом ошибается. Собственно шутка там в самом конце, и она технически не первоапрельская, но это не важно. :-)

... Оксиморон как артефакт - это нонсенс априори ...

Date: 2012-04-06 06:23 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Браво! Спасибо, действительно очень хорошая шутка.

Date: 2012-04-06 09:23 pm (UTC)
p_govorun: (Default)
From: [personal profile] p_govorun
Шутка великолепная!

Date: 2012-04-09 01:00 pm (UTC)
filin: (Default)
From: [personal profile] filin
Прелесть какая...

Date: 2012-04-07 08:23 pm (UTC)
From: [personal profile] hungry_ewok
/хмыкая/
Любой кто хоть сколько-то работает с пользователями начнет тупо с побайтного сравнения файлов. Ибо все врут.
8о)

Date: 2012-04-09 11:14 am (UTC)
From: [identity profile] legolegs.ya.ru
Врут не врут, а "cmp file1 file2" короче, чем "md5sum file1 file2"

Date: 2012-04-09 11:20 am (UTC)
From: [personal profile] hungry_ewok
И это тоже, но главный принцип таков: если пользователь что-то говорит - сначала проверь то что он говорит.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

August 2025

S M T W T F S
     1 2
3456789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 3rd, 2025 08:10 pm
Powered by Dreamwidth Studios