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++中cctouchbegan怎么使用

    在C++中,CCTouchBegan函数用于处理触摸事件的开始阶段。它通常是在继承自CCNode的类中重写的。
    下面是一个简单的示例,展示了如何使用CCTouchBegan函数:<...

  • c++中lpctstr怎么使用

    在C++中,LPCTSTR是一个指向常量的空终止字符串的指针类型。它是const TCHAR*的别名。
    TCHAR是一个根据字符集定义的宏,可以是char或wchar_t,具体取决于项...

  • C#中console.readline的用法是什么

    C#中的Console.ReadLine方法用于从控制台读取用户输入的一行文本。
    它的基本语法是:
    string input = Console.ReadLine();
    该方法会等待用户在控...

  • C# Invoke,begininvoke的用法详解

    在C#中,Invoke和BeginInvoke是用于在多线程编程中调用委托的方法。委托是一种可以存储对方法的引用的类型,可以用于异步执行方法。
    Invoke方法是同步调用委...

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

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

  • Python中的随机函数random详解

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

  • 详细整理Oracle中常用函数

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

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

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