Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Получить хеш файла (CRC32, MD5, SHA1, TTH, ED2K, BitPrint, AICH....) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как можно бы создать метод для ввода размерности (т.е. для ввода private переменных n,m)? http://www.cyberforum.ru/cpp-beginners/thread165296.html
Как можно бы создать метод для ввода размерности (т.е. для ввода private переменных n,m)? ( что только я не пробывал: то переменные перекрываются, то нарушается область видимости n и m в некоторых...
C++ Есть четыре числа нужно выбрать наим. и наиб. Здравствуйте, в консоли пользователь вводит числа a, b, c, d Как легче всего выбрать наибольшее и наименьшее, не делая кучи проверок? заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread165292.html
Заменить отрицательные элементы результатом деления на 3 C++
#include <cstdlib> #include <iostream> #include <math.h> using namespace std; void input_M (int mass, int N) {int i; cout<<"n="; cin >>N; for (i; i<N; i++) cin >>mass; }
работа с файлами, расширениями и дирректориями C++
Всем, привет. Вопрос следующий. Мне нужна литература в которой понятно и доступно объясняется работа в с++ с бинарными и обычными файлами, работа с директориями. А также расширениями. Если кто может...
C++ Указатель на следующий элемент структуры http://www.cyberforum.ru/cpp-beginners/thread165275.html
Как преобразовать строку myArray.next = &myArray.x; , чтобы она правильно работала? В следующем коде: #include <iostream.h> #pragma hdrstop #pragma argsused #define N 10 struct tfll {
C++ Случайные значения для разных объектов Здравствуйте. Я тут взялся за консольный морской бой, нарыл на форуме пару способов генерации случайных чисел, только есть проблема..... Допустим есть 3 корабля ship1, ship2 и ship3. Я бы хотел... подробнее

Показать сообщение отдельно
nail89
5 / 5 / 0
Регистрация: 28.07.2010
Сообщений: 12
12.09.2010, 22:59
Прикрепил архив, папка librhash, в ней исходники функций для получения всех хешей.
Отпишитесь если работают.

Вычисления TTH:

Сначала данные делим на блоки не более 1024 байта на блок. Далее к каждому получившемуся блоку спереди добавляется байт 00 - эта какт называемый Leaf Tiger Hash. Затем для каждой пары хешей вычисляется так называемый Internal Tiger Hash - это хеш от пары хешей Internal Tiger Hash или Leaf Tiger Hash с добавлением в начале байта 01. После хеширования всех пар получается один хеш, который называется Tiger Tree Root, и который является хешем всего дерева. Именно его используют для однозначной идентификации файла и указывают в различных P2P ссылках.

Схема хеширования:

- деление на блоки по 1024 байта;
- получение Leaf Tiger Hash (LTH) - это Tiger Hash от блока данных с добавленным в начале байтом 00 (Байт 00 + Блок данных);
- получение Internal Tiger Hash (ITH) - это Tiger Hash от двух других Tiger Hash (Internal Tiger Hash или Leaf Tiger Hash) с добавленным в начале байтом 01 (Байт 01 + Hash1 + Hash2);
- получение Tiger Tree Root (TTR) - это хеш всего дерева или единственный оставшийся хеш, полученный из пары уровнем ниже.

Вычисление количества хешей на уровне:

Количество хешей на уровне можно посчитать циклически от нижнего до верхнего уровня следующим образом:

- Округлённое до большего целого количество хешей самого нижнего уровня (Количество байт данных \ 1024);
- Округлённое до большего целого количество хешей выше (Количество хешей ниже \ 2);
- Повторяем пункт 2 для нового уровня, пока не будет найдено количество хешей нужного уровня.
2
Вложения
Тип файла: zip rhash-1.1.8.zip (344.8 Кб, 249 просмотров)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru