MD5 implementacja w C++


Implementacja algorytmu MD5 w C++

Poniżej umieszczam moją implementację algorytmu MD5 w c++.

Poniższy kod powstał na potrzeby pewnego konkursu CDF, gdzie musiałem napisać lekko zmodyfikowaną wersję algorytmu MD5. Po usunięciu zmian wymaganych przez zadanie pozostał poniższy kod. Planuję w przyszłości porównać wydajność poniższej implementacji z rozwiązaniami bazującymi na GPU, FPGA oraz pisaną przy wykorzystaniu wstawek w asembler.

Uwagi odnośnie do kodu

Zwracam uwagę, że w kodzie nie ma ani jednego MACRO. Dzięki constexpr obecnym w nowszych wydaniach c++ możemy uzyskać identyczną szybkość jak dzięki użyciu MACR, bez potrzeby korzystania z tak mało wygodnych i eleganckich rozwiązań jak pre procesor.

Poniższy kod był pisany w konkretnym celu i zawiera pewne ograniczenie. Aby policzyć hash, musimy wczytać do bufora cały blok danych do hashowania, nie ma możliwości podzielenia tego bloku na kawałki.

Kod

Plik nagłówkowy

Implementacja

Funkcja procesowa md5_computer::process_block( )

Funkcje składowe algorytmu MD5

Odnośniki

Dodaj komentarz

Twój adres email nie zostanie opublikowany.