我必须计算文件的 md5 哈希值。我成功地找到了库来做这件事,他们在屏幕上打印散列。我必须在 txt 文件上打印哈希,但我有一些问题。它只打印 00 而不是所有 32 位哈希。这是打印功能。我只添加了打开文件并在其上打印的行,其余的函数来自库并且工作正常,因为在屏幕上以正确的方式打印了哈希。
似乎是 fprintf 和 %02x" 的某种问题。谢谢。
static void MDPrint (mdContext)
MD5_CTX *mdContext;
{
int i;
FILE *fp;
if((fp=fopen("userDatabase.txt", "ab"))==NULL) printf("Error while opening the file..\n");
else {
for (i = 0; i < 16; i++)
printf ("%02x", mdContext->digest[i]);
fprintf(fp, "%02x", mdContext->digest[i]);
}
fclose(fp);
}