如何遍历目录中的文件并为每个文件计算sha512哈希?

时间:2019-02-28 17:27:28

标签: c hash openssl sha sha512

下面的代码创建一个已创建文件的哈希,但是我想知道应该在哪里开始将其转换为一个程序,该程序将扫描文件夹中的文件并自动对其进行哈希处理?我们将不胜感激提示,提示和指示,以了解如何实现此目的!

#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。

谢谢。

0 个答案:

没有答案