Miklix

Калькулятор хэш-кода MD2

Опубликовано: 16 февраля 2025 г. в 22:38:51 UTC

Калькулятор хэш-кода, который использует хэш-функцию Message Digest 2 (MD2) для расчета хэш-кода на основе введенного текста или загрузки файла.

Эта страница была переведена с английского языка для того, чтобы сделать ее доступной как можно большему числу людей. К сожалению, машинный перевод еще не является совершенной технологией, поэтому возможны ошибки. Если вы хотите, вы можете просмотреть оригинальную английскую версию здесь:

MD2 Hash Code Calculator

Функция хэширования MD2 (Message Digest 2) — это криптографическая функция хэширования, разработанная Рональдом Ривестом в 1989 году. Она была специально оптимизирована для 8-битных компьютеров. Хотя сейчас она считается устаревшей и небезопасной для криптографических целей, она включена сюда на случай, если потребуется вычислить обратно совместимый хэш-код. Ее не следует использовать при проектировании новых систем.

Полное раскрытие информации: я не писал конкретную реализацию хэш-функции, используемой на этой странице. Это стандартная функция, входящая в состав языка программирования PHP. Я лишь сделал веб-интерфейс, чтобы сделать ее общедоступной здесь для удобства.


Вычислите новый хэш-код

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

Исходные данные:



Представленный текст имеет кодировку UTF-8. Поскольку хэш-функции оперируют двоичными данными, результат будет отличаться от того, если бы текст был в другой кодировке. Если вам нужно вычислить хэш текста в определенной кодировке, вам следует загрузить файл.



Об алгоритме хеширования MD2

Я неплохо разбираюсь в простой математике, но не очень хорошо и ни в коем случае не считаю себя математиком, поэтому я попытаюсь объяснить, как работает эта хэш-функция, в терминах, которые могут понять нематематики. Если вы предпочитаете полную математическую версию, ее достаточно легко найти во многих других местах в Интернете ;-)

Теперь представьте, что у вас есть рецепт, который берет любые ингредиенты (ваше сообщение) и всегда превращает их в одну маленькую плитку шоколада из 16 кусочков (хэш). Независимо от того, какие у вас ингредиенты или насколько они большие или маленькие, вы всегда получите плитку шоколада одного и того же размера.

Цель этого рецепта заключается в следующем:

  1. Вы не сможете угадать состав, просто взглянув на шоколад.
  2. Даже небольшое изменение ингредиентов делает вкус шоколада совершенно другим, поэтому вы сразу поймете, что кто-то нарушил ингредиенты или рецепт.

Создание плитки шоколада — это трехэтапный процесс:


Шаг 1: Дополнение сообщения (подбор подходящих ингредиентов)

Допустим, у вас есть корзина, в которой ровно 16 яблок (или ингредиентов). Но что, если у вас всего 14 яблок? Вам нужно будет добавить еще 2, чтобы заполнить корзину. Если у вас мало яблок, вы просто добавляете дополнительные яблоки. Например:

  • Если вам нужно еще два, вы добавляете два яблока.
  • Если у вас больше 16, вам нужно заполнить следующую корзину. Например, если у вас 28, вы добавляете четыре, чтобы получить 32 (дважды по 16).

Это гарантирует, что все корзины будут заполнены, прежде чем мы перейдем к следующему шагу.


Шаг 2: Добавление контрольной суммы (секретный список ингредиентов)

Теперь мы создаем секретный список ингредиентов на основе всего содержимого корзины.

  • Вы просматриваете каждую корзину, смотрите на яблоки и записываете секретный код для каждого из них.
  • Это не просто копия — это как сложение цифр странным образом, так что даже если кто-то прокрадется и подменит яблоко, список будет выглядеть неправильно.

Этот список поможет вам позже еще раз проверить, не были ли испорчены ингредиенты.


Шаг 3: Смешиваем все вместе (волшебный блендер)

А теперь самое интересное — смешивание!

  • У вас блендер на 48 отделений.
  • Вы добавляете:
    1. Яблоки (ваше сообщение).
    2. Немного старой смеси, оставшейся от предыдущего раза (для первой партии она пустая).
    3. Смесь первых двух вещей.

Затем вы смешиваете. Но не один раз. Вы смешиваете 18 раз, меняя скорость и направление каждый раунд. Это не обычное смешивание — каждый раунд перемешивает смесь особым образом, так что даже одно другое яблоко сделает весь шоколад другим на вкус.


Последняя плитка шоколада (The Hash)

После всего этого смешивания вы выливаете только верхние 16 кусочков смеси. Это ваша последняя плитка шоколада — хэш MD2. Он совсем не похож на оригинальные яблоки, и если вы попытаетесь угадать оригинальные ингредиенты только по шоколаду, у вас ничего не получится.

Помнить:

  • Те же ингредиенты = тот же шоколад.
  • Замените хотя бы одно яблоко = получите совершенно другой шоколад.
  • Вернуться назад невозможно — невозможно определить исходные яблоки только по шоколаду.
Поделиться на BlueskyПоделиться на FacebookПоделиться на LinkedInПоделиться на TumblrПоделиться на XПоделиться на LinkedInЗакрепить на Pinterest

Миккель Банг Кристенсен

Об авторе

Миккель Банг Кристенсен
Миккель - создатель и владелец сайта miklix.com. Он имеет более чем 20-летний опыт работы в качестве профессионального программиста/разработчика программного обеспечения и в настоящее время работает на полную ставку в крупной европейской IT-корпорации. Когда он не ведет блог, то тратит свое свободное время на огромное количество интересов, хобби и занятий, что в некоторой степени отражается в разнообразии тем, освещаемых на этом сайте.