Перетащите
два файла, и эта страница сравнит их
побайтно прямо в вашем браузере: каждое различающееся смещение, шестнадцатеричный diff с окружающим контекстом, карта плотности различий и побитовый анализ, который показывает,
какие биты изменились. Отдельный
режим выравнивания блоков находит вставки и удаления в середине файла — случай, который обычный побайтовый diff не может выровнять. Результаты экспортируются в TXT и CSV. Ничего никуда не загружается. Для редактирования байтов вместо сравнения см. шестнадцатеричный редактор; для текста — инструмент
Сравнение текста.
1. Выберите два файла
2. Вывод
4. Вид с выравниванием блоков (находит вставки и удаления)
Побайтовый diff выравнивает смещение N с смещением N. Если байты были вставлены или удалены в середине одного файла, всё после этой точки сдвигается, и обычный diff сообщает весь хвост как различающийся. Этот режим хеширует блоки по 1 КБ, сопоставляет их между файлами и выводит результат как операции copy / insert / delete — так видят изменение дельта-инструменты вроде xdelta. Доступно, если оба файла не больше 64 МБ.
5. Экспорт
Что такое сравнение двоичных файлов?
Двоичное сравнение выравнивает два файла по байту 0 и идёт вперёд, сообщая каждое смещение, где байты различаются — аналог классической команды cmp -l в браузере. Инструменты сравнения текста с этим не справятся: они либо спотыкаются о непечатные байты, либо молча переинтерпретируют файл в какой-то кодировке символов. Двоичное сравнение рассматривает оба файла именно как то, что они есть, — массивы байтов, что и нужно для образов прошивок, дампов дисков, файлов баз данных, зашифрованных блобов или любого файла, формат которого вам неизвестен.
На три вопроса отвечают три разных уровня детализации. «Они одинаковы?» — вопрос контрольной суммы: инструмент отвечает на него быстрее всего, но только да или нет. «Где они различаются?» — побайтовый diff на этой странице: смещения, значения и то, какие биты перевернулись. «Что за изменение?» — это добавляет вид с выравниванием блоков: является ли различие правкой на месте, вставленным куском или удалённым куском.
Побайтовый diff и выравнивание блоков — зачем два вида?
| Ситуация | Побайтовый diff говорит | Вид с выравниванием блоков говорит |
| Поле перезаписано на месте (тот же размер файла) | несколько разрозненных различающихся смещений | то же, плюс «всё остальное совпадает» |
| 1 КБ вставлено в смещение 2000 файла B | всё с 2000 «различается» | копия 0–2000, вставка 1 КБ, копия остального |
| Блок удалён из середины файла B | всё с этой точки «различается» | копия до разрыва, удаление N байт, копия остального |
| Файл B — это файл A с другим заголовком перед ним | целые файлы «различаются» | удаление заголовка, затем одна длинная копия — то есть постоянный сдвиг |
Побайтовый diff всегда правилен — эти байты действительно различаются в этих смещениях. Сдвигается интерпретация, как только байты были вставлены или удалены, — точно так же, как добавление строки в начало текстового файла меняет номера всех последующих строк.
Как читается побитовый анализ
Для каждого различающегося байта страница вычисляет A XOR B и считает, какие позиции битов установлены. Эта гистограмма удивительно выразительна: различия, сконцентрированные в бите 0 (младшем бите каждого байта), — отпечаток стеганографии по младшему биту, когда сообщение прячется, слегка подправляя младший бит отсчётов пикселей или аудио. Различия, равномерно распределённые по всем восьми позициям, означают, что целые значения были переписаны. Различия, затрагивающие только старшие биты, обычно означают, что одно поле заменили значением совсем другой величины. Расстояние Хэмминга (общее количество перевёрнутых битов) выражает то же одним числом.
Одна честная оговорка: случайные данные совпадают в любом заданном байте с вероятностью 1/256, поэтому два непохожих файла одинакового размера всё равно совпадут примерно на 0,4% байтов. Сходство 99,98% с горсткой коротких блоков различий — это изменение уровня патча; сходство 0,4% означает, что файлы попросту не связаны.
Распространённые ошибки
«Весь файл красный после первого различия.» — это эффект сдвига, описанный выше, а не настоящее повреждение. Запустите вид с выравниванием блоков: если он сообщает одну вставку и две длинные операции копирования, файлы различаются именно этим вставленным куском. «Контрольные суммы совпали, но здесь файлы различаются.» — если дайджесты SHA-256 совпадают, файлы не различаются; перепроверьте, что вы открыли одни и те же файлы в обоих инструментах. Совпадение CRC-32, с другой стороны, ничего не доказывает против намеренной коллизии. «Сходство 0,4%, но я поменял только одну вещь.» — если ваша правка была внутри сжатого или зашифрованного контейнера (ZIP, zTXt в PNG, зашифрованный том), одно логическое изменение переписывает весь сжатый поток.
Частые вопросы
Каков предел размера? — 200 МБ на файл для побайтового diff, сравнение идёт фрагментами по 1 МБ. Вид с выравниванием блоков загружает оба файла, поэтому ограничен 64 МБ с каждой стороны.
Находит ли он перемещённые куски? — выравниватель сопоставляет блоки по порядку; кусок, перемещённый на другую позицию, видно как удаление плюс вставка того же содержимого, что является правильным, хотя и несколько грубым описанием.
Может ли он создать файл патча? — нет, это инструмент анализа; отчёты CSV и TXT предназначены для документации и проверки, а не для применения изменений.
Что происходит с моими файлами? — ничего: нет сервера, нет хранения, нет аналитики; закройте вкладку, и каждый байт входа исчезнет.