117.info
人生若只如初见

用c 获取文件MD5值的实现方法

???C???????MD5?,???????MD5?,??md5deep?OpenSSL??GNU md5sum?????OpenSSL???,????????????:

#include 
#include 
#define MAX_BUFFER_SIZE 1024
int main() {
char filename[MAX_BUFFER_SIZE];
unsigned char c[MD5_DIGEST_LENGTH];
int i;
printf("??????MD5????:");
fgets(filename, MAX_BUFFER_SIZE, stdin);
// ??filename?????
for (i = 0; i < MAX_BUFFER_SIZE; i++) {
if (filename[i] == '\n') {
filename[i] = '\0';
break;
}
}
FILE *file = fopen(filename, "rb");
if (!file) {
printf("?????? %s\n", filename);
return 1;
}
MD5_CTX md5Context;
MD5_Init(&md5Context);
unsigned char buffer[MAX_BUFFER_SIZE];
int bytesRead;
while ((bytesRead = fread(buffer, 1, MAX_BUFFER_SIZE, file)) != 0) {
MD5_Update(&md5Context, buffer, bytesRead);
}
MD5_Final(c, &md5Context);
printf("MD5 ??:");
for (i = 0; i < MD5_DIGEST_LENGTH; i++) {
printf("x", c[i]);
}
printf("\n");
fclose(file);
return 0;
}

?????????,????????MD5????,??????,???????????MD5????,????????OpenSSL?,????????????:

gcc -o md5 md5.c -lssl -lcrypto

??,md5.c???????????,-lssl -lcrypto?????OpenSSL??

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe61bAzsLBgFeBVU.html

推荐文章

  • c# winform组件 怎样集成

    在C# WinForms应用程序中集成组件通常涉及以下几个步骤: 添加引用: 首先,确保你已经安装了所需的组件。例如,如果你想要集成一个第三方库,你需要将该库的DLL...

  • c# winform组件 怎样提高效率

    要提高C# WinForms应用程序的效率,可以从多个方面入手,包括优化绘图过程、使用异步操作、合理设置控件属性等。以下是一些具体的优化策略:
    优化绘图过程 ...

  • c# winform组件 怎样自定义

    在C#中,要自定义WinForms组件,您需要创建一个继承自现有控件的新类,并重写其构造函数、事件处理程序和其他相关方法。以下是一个简单的示例,说明如何创建一个...

  • c# winform组件 怎样选择合适

    在C# WinForms应用程序开发中,选择合适的组件对于构建高效、用户友好的界面至关重要。以下是一些选择合适组件的建议:
    控件选择 根据需求选择:选择控件时...

  • 详解应用程序与驱动程序通信DeviceIoControl

    DeviceIoControl是Windows操作系统提供的一个API函数,用于应用程序与驱动程序之间进行通信。该函数可以通过发送特定的控制码和数据,来请求驱动程序执行特定的操...

  • Python中的随机函数random详解

    在Python中,随机函数可以通过random模块来实现。random模块提供了多种用于生成随机数的函数,包括整数、浮点数和序列的随机选择等。
    下面是一些常用的rand...

  • 详细整理Oracle中常用函数

    Oracle中常用的函数有很多,下面整理了一些常用的函数及其用法: 字符串函数: CONCAT(str1, str2):将两个字符串连接起来。 LENGTH(str):返回字符串的长度。 S...

  • IDEA中sout快捷键无效问题的解决方法

    如果在IDEA中sout快捷键无效,有以下几种可能的解决方法: 检查代码位置:确保光标在正确的位置上,例如在需要输出语句的位置上。 检查快捷键设置:在IDEA的设置...