Как перебрать файлы в каталоге и вычислить хэш sha512 для каждого? - PullRequest
0 голосов
/ 28 февраля 2019

Этот код ниже создает хеш файла, который создается, однако мне было интересно, где я должен начать преобразовывать его в программу, которая будет сканировать папку на наличие файлов и автоматически их хэшировать?Советы, подсказки и указатели на то, где искать, чтобы понять, как это сделать, будут высоко оценены!

#include <stdio.h>
#include <openssl/sha.h>

int main()
{
    unsigned char c[SHA512_DIGEST_LENGTH];
    char *filename="sha512.c";
    int i;
    FILE *inFile = fopen (filename, "rb");
    SHA512_CTX mdContext;
    int bytes;
    unsigned char data[1024];

    SHA512_Init (&mdContext);
    while ((bytes = fread (data, 1, 1024, inFile)) != 0)
        SHA512_Update (&mdContext, data, bytes);
    SHA512_Final (c,&mdContext);
    for(i = 0; i < SHA512_DIGEST_LENGTH; i++) printf("%02x", c[i]);
    printf (" %s\n", filename);
    fclose (inFile);
    return 0;
}

Понятно, что необходим цикл, однако я не уверен, как рассчитать каждый файл только один раз (в отличие от непрерывного вычисления файлов, которые уже были хэшированы).Этот код использует openssl.

Заранее спасибо.

...