Я пишу на 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);