Всем привет! Моя аппа должна юзать хэш-функцию MD5, с WASM-a скачал чудную колекцию алгоритмов по этой теме. Но трабла, не получается скомпилить код. MASM ругется на такое выражение - mov eax,[esi+0*4] Ошибка - error A2022: instruction operands must be the same size Хотя код написан для MASM, плиз помогите прикрутить... Код здесь - http://www.wasm.ru/baixado.php?mode=src&id=279
По этому поводу ничего не скажу, так в исходниках. Вот я тока не пойму как они предпологали их компилить на MASM-е
Есть еще непонятки, как юзать эту ф-цию ))) Здесь определены 3 процедуры, как и в каком порядке юзать - непонятно... MD5Init proto MD5Update proto WORD,WORD MD5Final proto
SPA Какая защита, какая особенность? Шутить изволите? Эстетичнее так исходник выглядит и нагляднее. И вполне вероятно, что автору лень было это все набирать руками, и он написал маленькую программку, которая всю основную процедуру нахождения MD5 сгенерировала. ATX Именно в этом и использовать. MD5Init задаёт стандартные начальные значения дайджеста. MD5Update проводит основные вычисления по всему или почти всему хэшируемому сообщению. MD5Final, наконец, дописывает в конец единичный бит, нули и размер хэшируемого сообщения. После MD5Final в MD5Digest будет четыре двойных слова хэша.
l_inc Спасибо! MD5Init, MD5Update ... - все это очень позновательно, но как практически использовать эти ф-ции. У меня задача очень простая, нужно получить хэш MD5 блока данных, путем обращения к N ф-ции. Я не силен в крипто-алгоритмах и не очень понимаю принцип их действия(((
call MD5Init invoke MD5Update, offset _data_, 56 ; _data_ = указатель на блок данных, 56 - длина MD5Final теперь в EAX указатель на 16 байтовый хешь.
2FED MD5Init в Вашей третьей строке - это что? Еще один вызов MD5Init? Круто. Но указатель в eax тогда будет не на хэш, а на стартовые значения. Кроме того, после MD5Update необходимо вызвать MD5Final, который досчитает хэш. И вот только тогда в eax будет указатель на хэш. P.S. ATX Собственно, в этом посте я перефразировал то, что написал в шестом посте. Учитывая указания 2FED, можно получить инструкцию по применению этого исходника. А всё остальное зависит от того, к чему и как Вы хотите его прикрутить. Можно скомпилировать в obj и линковать вместе со своими объектными файлами, можно просто вставить в свой исходник.