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

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

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

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

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

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

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

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

1
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
01.08.2015, 01:44
Цитата Сообщение от tnk500 Посмотреть сообщение
После последнего символа элемент в строке нужно поставить в 0х80, а остальное в нули, верно?
Ставишь в конец 0x80, затем добиваешь столько нулей, чтобы L' = 512 * N + 448, т.е. остаток от деление L' на 512 был равен 448. Последнее предложение шага говорит о том, что даже если исходный размер L и так дает в остатке 448, то мы все равно дописываем 0x80 и добавляем 511 нулей.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.08.2015, 01:44
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер