鱼C论坛

 找回密码
 立即注册
查看: 5324|回复: 14

[已解决]实现md5为什么编译不了?

[复制链接]
发表于 2021-5-28 20:38:51 | 显示全部楼层 |阅读模式
10鱼币
#include <stdio.h>
#include <string.h>
#include "md5.h"
#define MAX 1024
int main(void)
{
        int i,sum;
        unsigned char encrypt[MAX];
        unsigned char decrypt[MAX];
        
        printf("请输入密码:");
        fgets(encrypt, MAX, stdin);
        
        sum = strlen((char *)encrypt);
        
        printf("你输入的密码是:");
                for (i = 0; i < sum; i++)
                {        
                                printf("%c", encrypt[i]);
                }
                
        MD5_CTX md5;

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

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

        return 0;
}
最佳答案
2021-5-28 20:38:52
      Linux 下默认含有 OpenSSL 库,所以,编程中可以直接使用密码学的很多函数,其中就包括 md5。在 Windows 的 gcc 实现中,默认是不带 OpenSSL 库的,如果要用,你得自己下载源码,并自行编译、安装。

dev c++软件

dev c++软件

最佳答案

查看完整内容

Linux 下默认含有 OpenSSL 库,所以,编程中可以直接使用密码学的很多函数,其中就包括 md5。在 Windows 的 gcc 实现中,默认是不带 OpenSSL 库的,如果要用,你得自己下载源码,并自行编译、安装。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-28 20:38:52 | 显示全部楼层    本楼为最佳答案   
      Linux 下默认含有 OpenSSL 库,所以,编程中可以直接使用密码学的很多函数,其中就包括 md5。在 Windows 的 gcc 实现中,默认是不带 OpenSSL 库的,如果要用,你得自己下载源码,并自行编译、安装。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-28 21:49:06 | 显示全部楼层
无法打开包括文件: “md5.h”: No such file or directory  
应该没这个头文件吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-29 09:09:53 From FishC Mobile | 显示全部楼层
你需要把md5.h文件放到一个目录下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-29 21:26:11 | 显示全部楼层
Minecraft程序猿 发表于 2021-5-29 09:09
你需要把md5.h文件放到一个目录下

是放在一个目录下的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-29 21:41:21 | 显示全部楼层
本帖最后由 rt3 于 2021-5-30 07:47 编辑

你的md5.h和md5.c的内容呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-29 22:49:05 From FishC Mobile | 显示全部楼层
qiu064987 发表于 2021-5-29 21:26
是放在一个目录下的

是不是一些东西没定义,在主程序下写些函数原型试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-31 14:48:14 | 显示全部楼层
应该不是,试了下linxu,Ubuntu下这些可以编译成功
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

但在你的Windows OS上,编译器没有找到这些东西,所以没有编译成功
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

题外话,为什么要用图形gvim呢,用命令行的vim不好吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-6 21:40:50 | 显示全部楼层
我这边没有任何问题,不清楚你是怎么操作的
1.png
2.png
3.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-6 21:54:48 | 显示全部楼层
人造人 发表于 2021-6-6 21:40
我这边没有任何问题,不清楚你是怎么操作的

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

百度说下面那一行要加代码就有用,试过没用

百度说下面那一行要加代码就有用,试过没用
QQ截图20210606214837.png
QQ截图20210606214901.png
QQ截图20210606214916.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-6 22:01:09 | 显示全部楼层

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

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-7 14:19:52 | 显示全部楼层
本帖最后由 rt3 于 2021-6-7 14:36 编辑
Minecraft程序猿 发表于 2021-6-6 18:29
题外话,为什么要用图形gvim呢,用命令行的vim不好吗


我记得命令行vim的显示会受到某些进程的干扰,而且我也不懂怎么排查解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-8 12:00:58 From FishC Mobile | 显示全部楼层
rt3 发表于 2021-6-7 14:19
我记得命令行vim的显示会受到某些进程的干扰,而且我也不懂怎么排查解决

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 12:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表