Я хочу реализовать MD5 в своей программе (для образования). И у меня проблема с пониманием.MD5 алгоритм - что, если последний кусок 63 байта?
В Википедии есть написано:
- Append "1" бита в сообщение
- Append "0" биты до тех пор, длина сообщения в битах не ≡ 448 (по модулю 512)
- на добавление длины мод (2 пау 64) к сообщению
И моя идея такова:
- размера прибудет из сообщ
- до размера> = 64 ==> тетср 64 байт в буфер и вычислять функции
- если размер < 64, тетср «размер» байты и подготовить отступы.
И теперь, скажем, сообщение составляет 127 байт. Программа берет первые 64 байта, вычисляет, а затем хочет взять вторую часть. Взял 63 байта (504 бит), поэтому нужно добавить отступы. Добавляет 1, так что теперь его 505 бит.
Что теперь? Я должен добавить нули до 448 (mod 512), так что 448 + 7 нулей? Так снова будут два куска? Или что?
Я спрашиваю, потому что это выглядит невообразимо для меня;) Возможно, это хорошо, но .. я не знаю.
Спасибо заранее, M