Как вычислить хэш MD5 большого файла в C?

Я пишу на C, используя библиотеку OpenSSL.

Как вычислить хэш большого файла с помощью md5?

Насколько я знаю, мне нужно загрузить целый файл в оперативную память в виде массива символов, а затем вызвать хеш-функцию. Но что, если файл имеет длину около 4 Гб? Звучит как плохая идея.

РЕШЕНО:Благодаря askovpen я нашел свою ошибку. Я использовал

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

не

while ((bytes = fread (data, 1, 1024, inFile)) != 0)
    MD5_Update (&mdContext, data, bytes);
15
задан Community 23 May 2017 в 11:47
поделиться