qiu064987 发表于 2021-5-28 20:38:51

实现md5为什么编译不了?

#include <stdio.h>
#include <string.h>
#include "md5.h"
#define MAX 1024
int main(void)
{
      int i,sum;
      unsigned char encrypt;
      unsigned char decrypt;
      
      printf("请输入密码:");
      fgets(encrypt, MAX, stdin);
      
      sum = strlen((char *)encrypt);
      
      printf("你输入的密码是:");
                for (i = 0; i < sum; i++)
                {       
                                printf("%c", encrypt);
                }
               
      MD5_CTX md5;

      // 初始化
      MD5Init(&md5);
      // 传入明文字符串及其长度
      MD5Update(&md5, encrypt, strlen((char *)encrypt));
      // 得到加密后的字符串
      MD5Final(&md5, decrypt);

      for (i = 0; i < 36; i++)
      {
                printf("%02x", decrypt);
      }
      putchar('\n');

      return 0;
}

jackz007 发表于 2021-5-28 20:38:52

      Linux 下默认含有 OpenSSL 库,所以,编程中可以直接使用密码学的很多函数,其中就包括 md5。在 Windows 的 gcc 实现中,默认是不带 OpenSSL 库的,如果要用,你得自己下载源码,并自行编译、安装。

万千只cnm 发表于 2021-5-28 21:49:06

无法打开包括文件: “md5.h”: No such file or directory
应该没这个头文件吧

Minecraft程序猿 发表于 2021-5-29 09:09:53

你需要把md5.h文件放到一个目录下

qiu064987 发表于 2021-5-29 21:26:11

Minecraft程序猿 发表于 2021-5-29 09:09
你需要把md5.h文件放到一个目录下

是放在一个目录下的

rt3 发表于 2021-5-29 21:41:21

本帖最后由 rt3 于 2021-5-30 07:47 编辑

你的md5.h和md5.c的内容呢

Minecraft程序猿 发表于 2021-5-29 22:49:05

qiu064987 发表于 2021-5-29 21:26
是放在一个目录下的

是不是一些东西没定义,在主程序下写些函数原型试试

qiu064987 发表于 2021-5-31 14:48:14

应该不是,试了下linxu,Ubuntu下这些可以编译成功

rt3 发表于 2021-6-1 20:50:55

Linux下可以编译成功可能是因为系统中的md5.h有这些函数的声明和所需库文件,如图所示是我的系统的其中一个md5.h的内容


但在你的Windows OS上,编译器没有找到这些东西,所以没有编译成功

Minecraft程序猿 发表于 2021-6-6 18:29:05

rt3 发表于 2021-6-1 20:50
Linux下可以编译成功可能是因为系统中的md5.h有这些函数的声明和所需库文件,如图所示是我的系统的其中一个 ...

题外话,为什么要用图形gvim呢,用命令行的vim不好吗{:10_250:}

人造人 发表于 2021-6-6 21:40:50

我这边没有任何问题,不清楚你是怎么操作的



qiu064987 发表于 2021-6-6 21:54:48

人造人 发表于 2021-6-6 21:40
我这边没有任何问题,不清楚你是怎么操作的

是哪里少了什么声明还是什么啊,百度搜了要在工具编译选项里面加东西

人造人 发表于 2021-6-6 22:01:09


这个错误说明你创建的是窗口程序,应该创建控制台应用程序



编译选项我没有改,用的默认选项


rt3 发表于 2021-6-7 14:19:52

本帖最后由 rt3 于 2021-6-7 14:36 编辑

Minecraft程序猿 发表于 2021-6-6 18:29
题外话,为什么要用图形gvim呢,用命令行的vim不好吗

我记得命令行vim的显示会受到某些进程的干扰,而且我也不懂怎么排查解决

Minecraft程序猿 发表于 2021-6-8 12:00:58

rt3 发表于 2021-6-7 14:19
我记得命令行vim的显示会受到某些进程的干扰,而且我也不懂怎么排查解决

页: [1]
查看完整版本: 实现md5为什么编译不了?