2012-05-30 2 views
0

Я хочу реализовать MD5 в своей программе (для образования). И у меня проблема с пониманием.MD5 алгоритм - что, если последний кусок 63 байта?

В Википедии есть написано:

  1. Append "1" бита в сообщение
  2. Append "0" биты до тех пор, длина сообщения в битах не ≡ 448 (по модулю 512)
  3. на добавление длины мод (2 пау 64) к сообщению

И моя идея такова:

  1. размера прибудет из сообщ
  2. до размера> = 64 ==> тетср 64 байт в буфер и вычислять функции
  3. если размер < 64, тетср «размер» байты и подготовить отступы.

И теперь, скажем, сообщение составляет 127 байт. Программа берет первые 64 байта, вычисляет, а затем хочет взять вторую часть. Взял 63 байта (504 бит), поэтому нужно добавить отступы. Добавляет 1, так что теперь его 505 бит.

Что теперь? Я должен добавить нули до 448 (mod 512), так что 448 + 7 нулей? Так снова будут два куска? Или что?

Я спрашиваю, потому что это выглядит невообразимо для меня;) Возможно, это хорошо, но .. я не знаю.

Спасибо заранее, M

ответ

1

Описание Википедии является правильным. Невозможно создать схему заполнения, которая не добавит дополнительный блок, по крайней мере, некоторое время. (Допустимо тривиально путем подсчета.)

Смежные вопросы