编译时缺少openssl/md5.h该怎么处理

如题所述

最近需要安装openssl,需要使用openssl/md5.h这个头文件,可是使用Ubuntu的apt-get install openssl安装,没有这个文件,连urs/include/openssl都没,经过一天的查找资料都没解决,最后想到了使用源码安装openssl,最终解决了。
参考 http://www.linuxidc.com/Linux/2011-10/45738.htm
OpenSSL 是一款开源的 SSL 软件包,采用 SSL 的公开密钥技术,用于实现传输层的通信加密功能。OpenSSL 支持 Linux、Windows、BSD、Mac 等平台,功能强大,包含丰富的密码算法库,SSL 协议库和应用程序。
一、SSL 基本常识 1.1、什么是 SSL?
安全套接层(Secure Sockets Layer,SSL), 最初由 netscape 公司设计,建立在传输层的安全通信协议,采用公开密钥体系的证书认证方式来确保客户端和 SSL 服务器之间的通信安全。
1.2、SSL 认证流程
SSL 客户端在 TCP 连接建立之后,发出一个消息(包含了客户端所支持的算法列表)给服务器端,然后服务器端返回一个数据包(确定了这次通信所需算法)和 SSL 服务器端的证书(包含了公钥)给客户端。客户端随后会用收到的公钥将消息加密再传送,该加密消息只能用 SSL 服务器端私钥解密,即便中途被截取也无法获知内容。
二、编译安装 OpenSSL 2.1、准备工作
系统版本:Ubuntu-10.10-Server-I386
更新源:apt-get update
升级软件:apt-get upgrade
更新系统:apt-get dist-upgrade
2.2、查看OpenSSL版本
部分 Linux 系统已默认安装了 OpenSSL 0.9.8,特别是 VPS 一般都安装了。
openssl version -a
2.3、安装基础编译环境
apt-get install build-essential
2.3、编译安装 Zlib 库(这一步我没有成功,但是也成功安装了openssl)
wget http://zlib.net/zlib-1.2.5.tar.gz
tar -zxf zlib-1.2.5.tar.gz
cd zlib-1.2.5/
./configure --prefix=/usr/local
make && make install
2.4、卸载旧版本 OpenSSL
apt-get purge openssl
rm -rf /etc/ssl #删除配置文件
2.5、编译与安装 OpenSSL
prefix 是安装目录,openssldir 是配置文件目录,另外建议安装两次,shared 作用是生成动态连接库。

wget ftp://ftp.openssl.org/source/openssl-1.0.0c.tar.gz
tar -zxf openssl-1.0.0c.tar.gz
cd openssl-1.0.0c/
./config --prefix=/usr/local --openssldir=/usr/local/ssl
make && make install
./config shared --prefix=/usr/local --openssldir=/usr/local/ssl
make clean
make && make
进一步的配置可参考《OpenSSL-0.9.8g 安装与配置指南》http://www.linuxidc.com/Linux/2011-10/45737.htm
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-13
你好

这个问题时md5 的头包含顺序错误

调整你的 头文件顺序

ubuntu安装openssL没有openssl\/md5.h怎么解决
apt-cache search openssl | grep dev libglobus-gsi-openssl-error-dev - Globus Toolkit - Globus OpenSSL Error Handling Development Files libglobus-openssl-dev - Globus Toolkit - Openssl Library Development Files libglobus-openssl-module-dev - Globus Toolkit - Globus OpenSSL Module Wrapper ...

openssl\/ssl.h,该怎么处理
2.4、卸载旧版本 OpenSSL apt-get purge openssl rm -rf \/etc\/ssl #删除配置文件 2.5、编译与安装 OpenSSL prefix 是安装目录,openssldir 是配置文件目录,另外建议安装两次,shared 作用是生成动态连接库。tar -zxf openssl-1.0.0c.tar.gz cd openssl-1.0.0c\/ .\/config --prefix=\/usr\/...

有没有使用C++来计算文件MD5的库
C\/C++直接使用rfc1321标准即可,不需要什么库,简单直接 链接:http:\/\/tools.ietf.org\/html\/rfc1321 global.h -- global header file md5.h -- header file for MD5 md5c.c -- source code for MD5

如何在Windows下编译OpenSSL
1)打开VS Studio命令行工具,如图1所示。若编译64位OpenSSL库,请打开Visual Studio x64 Win64 Command Prompt,反之亦然。图1 2)配置编译文件及安装目录;编译Win32:perl Configure VC-WIN32 --prefix=c:\\some\\openssl\\dir 编译Win64:perl Configure VC-WIN64A “c:\\some\\openssl\\dir”目录可...

求一个把用户输入的字符串生成32位md5码的C程序
1. **引入MD5库**:首先,确保引入了一个支持MD5算法的C库。例如,使用`md5.h>`,这是OpenSSL库的一部分,广泛应用于加密和哈希操作。2. **初始化MD5上下文**:使用`MD5_CTX`结构体初始化MD5上下文。通过调用`MD5_Init(&md5_CTX);`完成初始化。3. **填充输入数据**:将用户输入的字符串转换...

如何在Linux下用C语言实现MD5\/DES解密
相关库函数如下:include <openssl\/md5.h> unsigned char *MD5(const unsigned char *d, unsigned long n,unsigned char *md);int MD5_Init(MD5_CTX *c);int MD5_Update(MD5_CTX *c, const void *data,unsigned long len);int MD5_Final(unsigned char *md, MD5_CTX *c);...

QT基于OpenSSL实现MD5\/SHA256\/DES\/AES加解密算法
QT基于OpenSSL实现MD5\/SHA256\/DES\/AES加解密算法的步骤首先,你需要下载适合自己系统的OpenSSL。以Windows x64为例,由于Windows x32版本逐渐减少,建议选择x64版本。安装完成后,OpenSSL默认安装在C:\\Program Files\\OpenSSL-Win64目录。在进行QT项目开发时,假设你的项目文件夹是D:\\Demo,为了方便引用第...

常见的几种SSL\/TLS漏洞及攻击方式
如果你使用一个早期版本的 nginx 或 OpenSSL,而且你的发行版没有向后移植该选项,那么你需要重新编译没有一个 ZLIB 支持的 OpenSSL。这会禁止 OpenSSL 使用 DEFLATE 压缩方式。如果你禁用了这个,你仍然可以使用常规的 HTML DEFLATE 压缩。Heartbleed(心血漏洞)Heartbleed(CVE-2014-0160) 是一个于2014...

Linux-SSL和SSH和OpenSSH,OpenSSL有什么区别
从编译依赖上看:openssh依赖于openssl,没有openssl的话openssh就编译不过去,也运行不了。HTTPS可以使用TLS或者SSL协议,而openssl是TLS、SSL协议的开源实现,提供开发库和命令行程序。openssl很优秀,所以很多涉及到数据加密、传输加密的地方都会使用openssl的库来做。可以理解成所有的HTTPS都使用了openssl。

Linux下编译安装openssl1.0.1d时遇到问题怎么办?
1、读一下INSTALL文档 2、make clean清理一下 3、重新来一次 .\/config --prefix=\/usr\/local --openssldir=\/usr\/local\/openssl make;make test;make install

相似回答