< >
Зарегистрируйтесь за 30 секунд

MD5 для чайников

В этой статье:

  • Что такое MD5
  • Как работает алгоритм
  • Пример

Узнайте, что такое алгоритм генерирования контрольных сумм "MD5", как он работает и для чего нужен. А также у нас на сайте есть MD5-калькулятор, где вы можете проверить результаты игры.

Что такое хеширование?

Хеширование (hashing — перемешивание, хеширование) — это преобразование любых данных (в нашем случае текстовых) произвольной длины в битовую строку определенной длины. Битова строка состоит из нулей и единиц, например, 010010100010101010001. Такое преобразование называется хеш-функцией. Результат перемешивания — хеш-код (иногда называют дайджестом сообщения).

Например, книгу "Война и Мир" можно представить в таком виде: 0001010101110101010110001001000010000100010000100000011111100010101.

Существует масса способов, как получить подобные строки из книги "Война и Мир". Одним из самых популярных алгоритмов является MD5, который выдает строку, состоящую лишь из нулей и единиц — всего 128 ячеек.

В большинстве случаев хеш-код короче в сравнении с размером данных, представленных в виде контрольной суммы. Вы можете предположить, что для разных данных хеш может повторяться. Возможно, вы правы. Количество строк на 128 знаков имеет предел — 2 в степени 128, это число с 38 нулями. Всего возможно 34 000 000 000 000 000 000 000 000 000 000 000 000 вариантов. Согласитесь, очень много.

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

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

Как работает алгоритм

Рассмотрим условия генерации контрольной суммы.

1. Разбивание исходных данных на равные части. Исходный код представляется в двоичном виде, который состоит лишь с нулей и единиц. Для каждой буквы, цифры и символа есть некоторое значение вида 1110001110.

Например, букве А соответствует последовательность единичек и нулей 1010. Если брать книгу "Война и Мир", хеш будет напоминать большое скопление единичек и нулей.

Всю эту работу выполняет алгоритм MD5. Он добавляет часть символов и разбивает данные на равные куски, состоящие из 512 и 32 знаков (битов).

После этого MD5 обрабатывает поочередно каждый из блоков по 512 знаков, разбивая каждый на меньшие блоки по 32 знака. После такой обработки из каждых 512 знаков мы получаем 4 куска по 128 бит.

2. Обработка данных в массиве. Здесь может быть множество разных способов. Например, куски по 32 бита можно вычитать, складывать, перемешивать, сдвигать влево или вправо на определенное количество знаков, менять местами единицы и нули, а можно даже соединять несколько способов. После выполнения данных операций невозможно восстановить прежний блок данных.

3. Обработка последующего блока данных в 512 бит. Каждый следующий блок складывается с предыдущим, в результате чего мы получаем всего 1 строку на 512 бит. Информация перемешивается как внутри блоков, так и между блоками.

Прогоняются все блоки и мы получаем одну строку на 512 бит вида 10100110010011010100110100101000100010000010100111000101101010100101010010100101010100100101001000101101

4. Перевод строки в из двоичной системы в 16-ричную. Вместо строки, содержащей лишь единицы и нули, мы получаем вот такую 848860e56f741c60c56b69894d7d77cb (16 чисел в битовом формате = 1 символ в 16-ричной системе).

Надежность алгоритма

Алгоритм хеширования MD5 используют многие онлайн казино, чтобы игроки были уверены, что данные не подтасовываются. Казино с данным алгоритмом можно считать честными.

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

Если перед началом игры игрок может узнать контрольную сумму MD5 с результатами игры, можно быть уверенным, что игра честная.

Является уникальной собственностью igrovoy-avtomat.com
Поделитесь с друзьями
"Мнение администрации сайта может не совпадать с мнением авторов статей"
Комментировать:

x