Comment calculer le hash MD5 d'un gros fichier en C?

Je suis en train d'écrire en C, en utilisant bibliothèque OpenSSL.

Comment puis-je calculer le hash d'un fichier volumineux à l'aide de md5?

Que je sais, j'ai besoin de charger un fichier entier à la RAM en tant que char tableau, puis d'appeler la fonction de hachage. Mais que faire si le fichier est de 4 go de temps? Sonne comme une mauvaise idée.

RÉSOLU: Grâce à askovpenj'ai trouvé mon bug. J'ai utilisé

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

pas

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

source d'informationauteur user1256821