19 / 11 / 0
Регистрация: 02.09.2010
Сообщений: 235
|
|
1 | |
Получить хеш файла (CRC32, MD5, SHA1, TTH, ED2K, BitPrint, AICH....)12.09.2010, 19:28. Показов 23231. Ответов 33
Метки нет (Все метки)
Нужно написать приложение выводящее один любой хеш указанного файла, независящий от названия файла.
CRC32, MD5, SHA1, TTH, ED2K, BitPrint, AICH.... Поделитесь, если у кого есть или подскажите самый простой способ, ... может есть просто заголовочный файл с функцией или готовый схожий пример... Спасибо всем, кто поможет
0
|
12.09.2010, 19:28 | |
Ответы с готовыми решениями:
33
Генерация MD5 хеш суммы файла Как получить контрольную сумму(MD5, SHA1, SHA256) у файла Как получить MD5-хеш файла Проверка файла по MD5,SHA1 |
19 / 11 / 0
Регистрация: 02.09.2010
Сообщений: 235
|
|
20.09.2010, 11:57 [ТС] | 21 |
0
|
1 / 1 / 2
Регистрация: 20.09.2010
Сообщений: 12
|
|
21.09.2010, 07:25 | 22 |
Да вроде нет, окно пустое. Подскажите кто-нибудь как в этом в коде выбирается файл для открытия? Он произвольный получается, или нет? Какой файл открывается? И как правильно исправить, если я хочу открыть конкретный файл, например по пути "С:\test.txt" ? Спасибо тем, кто откликнется.
0
|
21.09.2010, 08:58 | 23 | |||||
Select106, я тут немного навел красоты в коде. Сейчас выложу очищенную версию. Больше никаких предупреждений быть не должно, во всяком случае gcc сказать нечего
Возможно у Вас не показывается результат именно потому, что Вы не передаете имя файла. Имя файла передается как аргумент командной строки. Как пользоваться смотрите на скриншоте в миниатюре (первая строка - компиляция и отсутствие предупреждение, а вторая строка запуск программы)
1
|
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
|
21.09.2010, 09:27 | 24 |
Странно это как-то... ведь TTH рассчитывает хеш tiger блоками по 1024 байт... а потом каждую пару получившихся хешей до тех пор, пока не останется только один хеш. В Википедии очень хорошо расписан принцип работы.
0
|
1 / 1 / 2
Регистрация: 20.09.2010
Сообщений: 12
|
|
23.09.2010, 22:24 | 25 |
Подскажите еще, плиз. Если я хочу записать CRC в начало бинарного или текстового файла в 32-битном виде. Как это реализовать? Через буфер hash?
0
|
24.09.2010, 07:39 | 26 |
Select106, а в каком виде вы хотите его записать? Хотя буфер здесь думаю в любом случае будет излишен. Вам надо смотреть в сторону функций fwrite или fprintf.
То есть я не совсем понял, что Вы имели в виду под словами "32-битный вид". Есть вид форматированный и не форматированный. В форматированном виде Вы получите символическое отображение числа, в неформатированном виде само число. Но в любом случае еще один буфер не нужен.
0
|
1 / 1 / 2
Регистрация: 20.09.2010
Сообщений: 12
|
|
25.09.2010, 16:38 | 27 |
Я хотел бы, чтобы число записалось в том же виде, что выводится на консоль. В функции fwrite первый аргумент - название буфера или массива откуда производится запись, просто переменная там вроде не подходит. Тогда как записать? А функция fpitnf только для текстовых файлов или я ошибаюсь?
0
|
26.09.2010, 08:44 | 28 | |||||
Спешу Вас уверить, что текстовый файл ничем не отличается от других файлов, если открывать файлы в бинарном режиме.
Функция fwrite вам не подойдет, но однако по другой причине. Вам нужнa форматированная запись, то есть fprintf.
1
|
1 / 1 / 2
Регистрация: 20.09.2010
Сообщений: 12
|
|
26.09.2010, 20:14 | 29 |
Большое спасибо
0
|
1 / 1 / 2
Регистрация: 20.09.2010
Сообщений: 12
|
|
28.09.2010, 09:06 | 30 |
понимаю, что уже достал. Если кто сможет, подскажите пример кода, как записать в файл его crc32, чтобы при этом crc файла осталась неизменной.
0
|
Модератор
12459 / 7483 / 1754
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
28.09.2010, 09:18 | 31 |
Как Вы себе это представляете? Это самое crc по содержимому файла считается. Разве, что сам файл переименовать, сделав вместо имени crc код в виде строки. Ну или после имени файла его вставлять, но точно не в содержимое файла.
0
|
1 / 1 / 2
Регистрация: 20.09.2010
Сообщений: 12
|
|
28.09.2010, 09:43 | 32 |
Для этого существует алгоритм, который включает в себя блок из 4 корректировочных байт и инверсное вычисление crc32. Извиеите, что не до конца разобрался, поэтому и прошу помощи, иначе бы пояснил подробнее.
1
|
28.09.2010, 09:47 | 33 |
Надо считать CRC не для всего файла, исключая само значение CRC. То есть надо либо заранее знать смещение, по которому будет храниться значение контрольной суммы, либо делать метку, рядом с которой будет храниться значение. И при проверке пропускать эти байты.
1
|
Tref
|
||||||
02.11.2012, 17:09 | 34 | |||||
|
02.11.2012, 17:09 | |
02.11.2012, 17:09 | |
Помогаю со студенческими работами здесь
34
При попытке получить слепок MD5 - получаю SHA1 Ввести в форму слово и получить его md5 и sha1 хэш. Получить хеш md5 md5 хеш файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |