С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
1

Написание хэш-функции

31.07.2015, 19:47. Показов 1036. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Решил освоить хэш-функции, ну и, соответственно, написать реализации большинства. Вопросы неизбежны, поэтому, думаю, буду отписываться в теме. Первый возник сразу. В вики алгоритм MD5 расписан так:

Шаг 1. Выравнивание потока
Сначала дописывают единичный бит в конец потока (байт 0x80), затем необходимое число нулевых бит. Входные данные выравниваются так, чтобы их новый размер L' был сравним с 448 по модулю 512(L' = 512 * N + 448). Выравнивание происходит, даже если длина уже сравнима с 448.
Чутка не понял. Нужно сделать так, чтобы новый размер был больше текущего, но при этом при делении его на 512 остаток получался равным остатку деления от 448? После последнего символа элемент в строке нужно поставить в 0х80, а остальное в нули, верно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.07.2015, 19:47
Ответы с готовыми решениями:

Хэш функции
Задание: Написать программу которая реализует хэш-функцию за 3 последними цифрами,...

Умножение хэш-функции
Пытаюсь сделать гост 34.10.94. Там получаю хэш...

Изменение хэш-функции
Здравствуйте. Подскажите, как изменить хэш-функцию SHA-512, чтобы на вход она принимала численные...

Пример коллизии хэш функции
Видел пример в вики по поводу коллизии хэш функции, но не понял его. То есть, коллизия случается,...

1
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
01.08.2015, 01:44 2
Цитата Сообщение от tnk500 Посмотреть сообщение
После последнего символа элемент в строке нужно поставить в 0х80, а остальное в нули, верно?
Ставишь в конец 0x80, затем добиваешь столько нулей, чтобы L' = 512 * N + 448, т.е. остаток от деление L' на 512 был равен 448. Последнее предложение шага говорит о том, что даже если исходный размер L и так дает в остатке 448, то мы все равно дописываем 0x80 и добавляем 511 нулей.
0
01.08.2015, 01:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.08.2015, 01:44
Помогаю со студенческими работами здесь

Есть ли стандартные хэш функции
Есть ли в C++ стандартные хэш функции, в которые передаешь строку, получаешь на возврате строку,...

Нужны исходники хэш-функции
SOS!!! пришлите кто-нибудь исходники хэш-функции на sedar@narod.ru

Определение хэш-функции для контейнера
На просторах stackoverflow нашел следующую реализацию для std::аrrаy: namespace std { ...

Класс хэш-функции, выскакивает ошибка
Помогите разобраться в чем проблема, неправильно выдает результат class hash_{ private:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru