使用linux c md5校验文件 并保存打印出md5校验码
时间: 2024-11-09 12:26:56 浏览: 13
在Linux下使用C语言计算文件的MD5校验码并将其保存并打印出来,你可以使用开源库`libcurl`或`openssl`来完成这个任务,因为它们都内置了MD5哈希功能。以下是使用`openssl`的一个简单示例:
```c
#include <stdio.h>
#include <string.h>
#include <openssl/md5.h>
void compute_md5(const char* filename, char* output) {
FILE* file = fopen(filename, "rb");
if (!file) {
printf("Error opening file: %s\n", filename);
return;
}
unsigned char hash[MD5_DIGEST_LENGTH];
MD5((unsigned char*)filename, strlen(filename), hash);
// 输出MD5字符串,通常我们会转换为十六进制格式
for (int i = 0; i < MD5_DIGEST_LENGTH; i++) {
sprintf(&output[i * 2], "%02x", hash[i]);
}
output[MD5_DIGEST_LENGTH * 2] = '\0'; // 添加字符串结束符
fclose(file);
printf("MD5 Hash of '%s': %s\n", filename, output);
}
int main() {
char filename[] = "/path/to/your/file";
char md5_output[33]; // MD5长度为16字节,加上"="和"\n"共33字节
compute_md5(filename, md5_output);
return 0;
}
```
在这个程序中,我们首先打开文件进行二进制读取,然后使用`MD5()`函数计算文件内容的哈希值。接着我们将得到的哈希数组转换为十六进制字符串,并保存到`output`变量中。最后,关闭文件并打印出MD5校验码。
阅读全文