Привет, сейчас речь пойдет про разбор и реализацию алгоритма хеширования md5 на языке C++. Сам алгоритм раньше широко применялся для проверки целостности информации и для хранения паролей, пока его не признали небезопасным.
Историю алгоритма вы можете прочитать на Википедии:
Ссылка скрыта от гостей
.
Эта статья написана для начинающих, которым интересно как этот алгоритм работает изнутри и как его реализовать. Моя реализация алгоритма является обучающей, то есть код работает не так быстро, но позволяет понять как устроен md5. От читателей требуется базовое знание C++ и минимальный опыт работы с памятью и указателями. Начнем.
Алгоритм состоит из нескольких шагов, которые мы сейчас рассмотрим и сразу же реализуем.
Step 0
Сам алгоритм принимает на вход двоичную последовательность любой длины. Мы же будем решать немного иную задачу. А именно, на вход нашей программы...