ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[C++] читаем фаил.torrent
  #1  
Старый 08.10.2009, 19:27
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию [C++] читаем фаил.torrent

Создавал тему в болталке, но там както несложилось. Теперь создаю тут так как код пишу на С++ в linux.

Вобщем надо разобрать торрентфайл и получить из него хеш сумму файла, тобишь поле pieces. Из спецификации

Цитата:
pieces: Строка, составленная объединением 20-байтовых значений SHA1-хэшей каждого куска (один кусок — один хэш) (байтовая строка)
Файл торента открываю так
Код:
ifstream ftor (fname.c_str(), ifstream::in);
читаю построчно в цыкле через
Код:
getline(ftor, line);
конкатенирую все считанный строки и вывожу на экран, получаю следующее:
- В начале идет все как по спецификации все поля их значения в обычном символьном виде.
- После начала поля pieces: идет нечетабельная хрень
- В конце опять читабельный строки по спецификации.
Некак немогу понять как правильно считать чтобы вместо "нечетабельной хрени" получить коректную хешсумму. Или может эту нечетабельную хрень чемто конфертировать надо ?
 
Ответить с цитированием

  #2  
Старый 08.10.2009, 20:26
Аватар для Nikituki
Nikituki
Новичок
Регистрация: 14.03.2009
Сообщений: 25
Провел на форуме:
72034

Репутация: 5
Отправить сообщение для Nikituki с помощью ICQ
По умолчанию

Цитата:
Сообщение от cupper  
идет нечетабельная хрень
Тут подразумеваются непонятные символы?
Быть может байтовые числа просто распознаются как символы?
 
Ответить с цитированием

  #3  
Старый 08.10.2009, 20:32
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

Цитата:
Сообщение от Nikituki  
Тут подразумеваются непонятные символы?
Быть может байтовые числа просто распознаются как символы?
дык я и спрашиваю как сделать чтобы этого не происходило, сам не могу разобраться
 
Ответить с цитированием

  #4  
Старый 08.10.2009, 20:35
Аватар для Nikituki
Nikituki
Новичок
Регистрация: 14.03.2009
Сообщений: 25
Провел на форуме:
72034

Репутация: 5
Отправить сообщение для Nikituki с помощью ICQ
По умолчанию

Попробуй конвертировать строку с хеш-суммой в число, например функцией atoi. Кстати, число в строке 16-ричные.

Последний раз редактировалось Nikituki; 08.10.2009 в 20:43..
 
Ответить с цитированием

  #5  
Старый 08.10.2009, 20:51
Аватар для Kraneg
Kraneg
Участник форума
Регистрация: 30.08.2008
Сообщений: 132
Провел на форуме:
1351948

Репутация: 325
По умолчанию

Nikituki сударь вы вообще о чем? функция atoi считывает числа в новую переменную до первой буквы, это вообще не преобразования =) даже более скажу к SHA1 это не приемлимо так как смотрим на пример хеша
da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709 )
 
Ответить с цитированием

  #6  
Старый 08.10.2009, 20:57
Аватар для Nikituki
Nikituki
Новичок
Регистрация: 14.03.2009
Сообщений: 25
Провел на форуме:
72034

Репутация: 5
Отправить сообщение для Nikituki с помощью ICQ
По умолчанию

Цитата:
Сообщение от Kraneg  
Nikituki сударь вы вообще о чем? функция atoi считывает числа в новую переменную до первой буквы, это вообще не преобразования =)
Согласен, тут я погорячился.
Цитата:
Сообщение от Kraneg  
da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709 )
А что мешает разбить строку пробелами на несколько?
 
Ответить с цитированием

  #7  
Старый 08.10.2009, 20:59
Аватар для Kraneg
Kraneg
Участник форума
Регистрация: 30.08.2008
Сообщений: 132
Провел на форуме:
1351948

Репутация: 325
По умолчанию

Nikituki ничего я тут как пример привел неприменимости атои из за выше указанных обстоятелств =)
 
Ответить с цитированием

  #8  
Старый 08.10.2009, 21:04
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

---------
 
Ответить с цитированием

  #9  
Старый 08.10.2009, 21:04
Аватар для Nikituki
Nikituki
Новичок
Регистрация: 14.03.2009
Сообщений: 25
Провел на форуме:
72034

Репутация: 5
Отправить сообщение для Nikituki с помощью ICQ
По умолчанию

В таком случаем разбиваем строку и юзаем strtol..
 
Ответить с цитированием

  #10  
Старый 08.10.2009, 21:21
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

маленькая заминка, строл хочет чтобы ей передали строку читабельную, тобишь с нормальными символами. А у меня "нечетабельная хрень" %)

делаю
Код:
cout<<strtol(string(STR_SR, 0, 20).c_str(), &err,16)<<endl;
	cout<<string(STR_SR, 0, 20).c_str()<<"\n";
STR_SR это "вся нечетабельная хрень, а мы знаем что она состоит из последовательно записанных 20байтовых SHA1 хешсумм, поэтому беремен первый 20 символов (байт)
и в итоге получаем в консоли
Код:
0
��a�Kލt^L�$��(pc
PS. поправил

Последний раз редактировалось cupper; 08.10.2009 в 21:32..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
zmail.ru: Сниффер и сессии. Читаем чужие письма. KEZ Комментарии к видео 2 10.10.2005 19:01
Читаем чужие письма на mail.ru через сессии petrovich-lamer E-Mail 30 12.05.2005 17:19



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ