Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

md5 строки: ясно. md5 file: ????????

13K
07 сентября 2007 года
Wintos
10 / / 04.03.2006
каким образом производится месседж дайджест файла ???
240
07 сентября 2007 года
aks
2.5K / / 14.07.2006
Какая разница MD5 береться от набора байт любой длины.
Так что можно как от строки (как набора байт символов) хоть от файла.
13K
07 сентября 2007 года
Wintos
10 / / 04.03.2006
Цитата: aks
Какая разница MD5 береться от набора байт любой длины.
Так что можно как от строки (как набора байт символов) хоть от файла.



так вот как это реализовать?
маппировать... короче, может есть у кого готовый алгоритм?
я не понимаю как создастся мд5, если считывать файл в буфер,

16K
07 сентября 2007 года
Zbyszek
118 / / 08.08.2007
А как ты считаешь MD5 строки? Если ты использовал чужой код, то почти 100% там должен быть и расчёт MD5 файла.
В общем случае файл загружается в память и ф-ии передается указатель на него.
240
07 сентября 2007 года
aks
2.5K / / 14.07.2006
Посмотри любую открытую реализацию MD5. Там все есть. Для MD5 нет разницы с чем работать, это просто функция отображающая множество всевозможных комбинаций байт в в множество 128-битных чисел грубо говоря. Алгоритм позволяет по ходу получения очередны данных дальше вычислять это число (хэш). Так что смотри код - он на самом деле небольшой. Ну или если юзаешь какую то либу, как сказал Zbyszek там почти наверняка есть возможность для подсчета хэша файла.
63
07 сентября 2007 года
Zorkus
2.6K / / 04.11.2006
Тебе необходимо это самому реализовать, или хочешь разобраться досконально в самом алгоритме?
Если ни то, ни другое - бери готовые реализации, благо их в Интернете полно.
13K
09 сентября 2007 года
Wintos
10 / / 04.03.2006
Я использую CRYPTOHASH written by drizz. Написано на асме (MASM синтаксис). вот мой код который выводит мдп ф.:

invoke GetOpenFileName, addr ofn
.if eax==TRUE

invoke CreateFile,ofn.lpstrFile,GENERIC_READ ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,NULL
.IF eax==INVALID_HANDLE_VALUE
jmp error1
.ENDIF
mov hFileRead,eax

invoke GetFileSize, hFileRead, NULL
mov fsize,eax
invoke CreateFileMapping,hFileRead,NULL,PAGE_READONLY,0,0,NULL
.IF eax==NULL
jmp error2
.ENDIF
mov hFileMap,eax
invoke MapViewOfFile,hFileMap,FILE_MAP_READ,0,0,0

.IF eax==NULL
jmp error3
.ENDIF
mov hFileMapView,eax

invoke MD5Init
invoke MD5Update, hFileMapView, fsize
invoke MD5Final
invoke hex2ascii, eax, offset outbuffer, 10h
invoke CloseHandle,hFileRead

.elseif eax!=TRUE
invoke ExitProcess,0
.endif

В итоге файл размером 600 мег (*.iso) ВЕСЬ перелезает в оперативу...
Я так понимаю файл - очень длинная строка.
Так вот это ведь бред!... как сделать чтоб не так много места жрало ...
(если код корявый маякните) СПСБ
12K
10 сентября 2007 года
lifs
163 / / 06.09.2007
Можно отправлять файл в память по кускам. Как - смотри в теме CreateFileMapping - весь файл сразу маппирует?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог