все еще в беде с MD5

Я закончил реализацию алгоритма MD5 в C ++, но он не работает должным образом … Мои хеши неверны.

Просто для понимания:
Если я пытаюсь хешировать файл (64 байта) с помощью алгоритма хеширования MD5, должно произойти следующее:

//    512 Bit(data)     512 Bit(Padding)
//    -------------     -------------
//    |xxxxxxxxxxx|     |10000000|64|
//    -------------     -------------
//
//     1 - appended 1 Bit
//     0 - filled with zeros until 8 bytes before end of block
//    64 - 64 bit (8 Byte) representation of size of file

1-й: алгоритм MD5 с блоком данных

2-й: создать дополнительный блок с отступом

3-й: алгоритм MD5 с блоком заполнения

Правильно?

1

Решение

Значение 64-битного представления ДОЛЖНО быть в битах, а не в байтах!
Поэтому счетчик в моем случае не 64. Это 64 * 8 = 512.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]