实现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;
}
Linux 下默认含有 OpenSSL 库,所以,编程中可以直接使用密码学的很多函数,其中就包括 md5。在 Windows 的 gcc 实现中,默认是不带 OpenSSL 库的,如果要用,你得自己下载源码,并自行编译、安装。 无法打开包括文件: “md5.h”: No such file or directory
应该没这个头文件吧 你需要把md5.h文件放到一个目录下 Minecraft程序猿 发表于 2021-5-29 09:09
你需要把md5.h文件放到一个目录下
是放在一个目录下的 本帖最后由 rt3 于 2021-5-30 07:47 编辑
你的md5.h和md5.c的内容呢 qiu064987 发表于 2021-5-29 21:26
是放在一个目录下的
是不是一些东西没定义,在主程序下写些函数原型试试 应该不是,试了下linxu,Ubuntu下这些可以编译成功 Linux下可以编译成功可能是因为系统中的md5.h有这些函数的声明和所需库文件,如图所示是我的系统的其中一个md5.h的内容
但在你的Windows OS上,编译器没有找到这些东西,所以没有编译成功 rt3 发表于 2021-6-1 20:50
Linux下可以编译成功可能是因为系统中的md5.h有这些函数的声明和所需库文件,如图所示是我的系统的其中一个 ...
题外话,为什么要用图形gvim呢,用命令行的vim不好吗{:10_250:} 我这边没有任何问题,不清楚你是怎么操作的
人造人 发表于 2021-6-6 21:40
我这边没有任何问题,不清楚你是怎么操作的
是哪里少了什么声明还是什么啊,百度搜了要在工具编译选项里面加东西
这个错误说明你创建的是窗口程序,应该创建控制台应用程序
编译选项我没有改,用的默认选项
本帖最后由 rt3 于 2021-6-7 14:36 编辑
Minecraft程序猿 发表于 2021-6-6 18:29
题外话,为什么要用图形gvim呢,用命令行的vim不好吗
我记得命令行vim的显示会受到某些进程的干扰,而且我也不懂怎么排查解决 rt3 发表于 2021-6-7 14:19
我记得命令行vim的显示会受到某些进程的干扰,而且我也不懂怎么排查解决
哦
页:
[1]