Jak obliczyć skrót MD5 dużego pliku w C?

Piszę w C za pomocą biblioteki OpenSSL.

Jak mogę obliczyć hash dużego pliku przy użyciu md5?

Jak wiem, muszę załadować cały plik do RAM jako tablicę znaków, a następnie wywołać funkcję skrótu. Ale co, jeśli plik ma długość około 4 GB? Brzmi jak zły pomysł.

ROZWIĄZANY: Dziękiaskovpen, Znalazłem mój błąd. Użyłem

<code>while ((bytes = fread (data, 1, 1024, inFile)) != 0)
    MD5_Update (&mdContext, data, 1024);
</code>

nie

<code>while ((bytes = fread (data, 1, 1024, inFile)) != 0)
    MD5_Update (&mdContext, data, bytes);
</code>

questionAnswers(4)

yourAnswerToTheQuestion