Сравнение двух текстов по хешу
Введите текст для хэширования.
Два длинных текста идентичны, только если их дайджесты совпадают. Хешируйте каждый текст одним и тем же алгоритмом, затем сравните два коротких значения. Один другой символ, пробел или перенос строки дают совсем другой результат.
Как проверить, совпадают ли два текста
-
1
Захешируйте первый текст
Вставьте первый текст, оставьте выбранным SHA-256 и вычислите. Скопируйте или запишите дайджест.
-
2
Повторите со вторым текстом
Замените текст на вторую версию, используя тот же алгоритм.
-
3
Сравните дайджесты
Если все 64 символа совпадают, тексты состоят из одинаковых байтов. Если отличается хотя бы один символ, отличаются и тексты.
-
4
При необходимости сузьте поиск
Если дайджесты различаются, хешируйте меньшие части каждого текста, чтобы найти изменившийся абзац.
Почему хеш даёт надёжное сравнение
Хорошая хеш-функция отправляет каждое различное входное значение в свой непредсказуемый дайджест. Для SHA-256 не известно способа найти два разных текста с одинаковым дайджестом, поэтому совпадение дайджестов означает совпадение содержимого для любых практических целей. Дайджесты также короткие, так что вместо страниц можно сравнивать 64 символа.
Пример
| Текст | SHA-256 |
|---|---|
| hello | 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 |
| Hello | 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969 |
Тексты отличаются одной заглавной буквой, а дайджесты не имеют заметного сходства. Поэтому даже мельчайшие правки видны сразу.
Что считается различием
Сравнение выполняется побайтово. Все следующие изменения меняют дайджест:
- лишний пробел в конце строки;
- перенос строки в конце текста;
- другой вид апострофа или тире, который выглядит на экране так же;
- буквы с диакритикой, введённые разными способами, например буква плюс отдельный знак ударения и один составной символ.
Если два текста выглядят одинаково, а дайджесты разные, вероятная причина именно в одном из этих невидимых отличий. Хеш текста с завершающим переносом строки и без него быстро покажет, в чём дело.
Выбор алгоритма
Используйте один и тот же алгоритм для обоих текстов. SHA-256, надёжный вариант по умолчанию. MD5 и SHA-1 тоже выявляют обычные отличия, но их не стоит применять, если кто-то может намеренно подобрать коллизию. CRC32 короче, но слабее для больших наборов данных.
Инструмент показывает все дайджесты для хешированного текста в полном списке, так что за один проход можно сравнить несколько алгоритмов.
Практический порядок действий
Храните дайджест исходного текста в заметках или в тикете. Когда приходит новая версия, захешируйте её тем же алгоритмом и сравните. Это хорошо работает для фрагментов конфигурации, юридических формулировок, пунктов договоров и шаблонных текстов, где нужно доказать, что ничего не изменилось, а не получить список правок.
Если дайджесты различаются
Не предполагайте сразу, что содержимое неверно. Сначала проверьте обычные причины: скопированный текст может содержать завершающий пробел, другой стиль переноса строк или скрытый символ с веб-страницы или из текстового редактора. Захешируйте обе версии после одинаковой очистки. Если дайджесты всё равно различаются, разбейте каждый текст на абзацы, хешируйте их по одному и сравнивайте пары, пока не найдёте изменившийся.
Часто задаваемые вопросы
С SHA-256 или SHA-512, да, для любых практических целей. С MD5, SHA-1 или CRC32 совпадающие дайджесты, сильное свидетельство против случайных ошибок, но не против намеренной подделки.
Да. Те же строки в другом порядке дают другой дайджест, потому что байты расположены в другом порядке.
Нет. Он хеширует один текст за раз, а дайджесты вы сравниваете сами. Различия он не выделяет.
Да. Hello и hello имеют разные дайджесты. Если регистр не важен, сначала приведите оба текста к одному регистру.
Сопутствующие инструменты
Шифр из числа в букву
Преобразуйте числа в буквы и обратно по шифру A=1, B=2 (A1Z26) для головоломок, загадок и подсказок в квест-комнатах.
Генератор SSL-сертификатов
Создайте самоподписанный сертификат SSL/TLS и закрытый ключ RSA полностью в браузере. Свои Common Name, SAN и срок действия, экспорт в PEM.
Генератор ключей API случайного типа
Создавайте на сервере ключи API длиной 8–128 символов в формате hex, base64url или алфавитно-цифровом формате либо UUIDv4.
Кодировщик шифра Виженера
Шифруйте и дешифруйте сообщения классическим шифром Виженера с помощью ключевого слова. Сдвигает латинские буквы A-Z, сохраняя регистр, пробелы и пунктуацию.
Генератор MD5
Создайте хеш MD5 для любого текста или файла. Результат, 128-битное значение в шестнадцатеричном формате, вычисляемое полностью в вашем браузере.
Генератор хешей SHA1
Генерируйте хеши SHA-1 (40 шестнадцатеричных символов) из любого текстового ввода. Полезно для устаревших контрольных сумм, ID объектов git и неохранных проверок целостности.
Инструмент доступен на других языках
- เปรียบเทียบข้อความสองชุดด้วยแฮช [TH]
- Porównaj dwa teksty za pomocą skrótu [PL]
- So sánh hai văn bản bằng mã băm [VI]
- Bandingkan Dua Teks dengan Hash [ID]
- مقارنة نصين باستخدام التجزئة [AR]
- Zwei Texte mit einem Hash vergleichen [DE]
- ハッシュで 2 つのテキストを比較 [JA]
- Compare dois textos com um hash [PT]
- Comparar dos textos con un hash [ES]
- 해시로 두 텍스트 비교하기 [KO]
- Jämför två texter med en hash [SV]
- Comparer deux textes avec un hash [FR]
- Twee teksten vergelijken met een hash [NL]
- Compare Two Texts With a Hash [EN]
- Confrontare due testi con un hash [IT]
- Hash ile İki Metni Karşılaştırın [TR]
- 用哈希比较两段文本 [ZH]