一,简介

OpenSSL ,即open secure sockets layer,是一个开源的安全套接字层的密码库。包括常用的密码加解密算法、常用的密钥算法、证书管理和SSL协议。

1、库的主要内容

OpenSSL 库主要包含三大部分:
openssl(/usr/bin): 多用途的命令行工具,可以执行交互或批量命令。e.g. - openssl version 查看版本号. libcrypto(/user/lib64): 加解密算法库. libssl(/user/lib64):加密模块应用库,实现了ssl及tls。一下内容引用自README:

The OpenSSL toolkit includes:
libssl (with platform specific naming):
Provides the client and server-side implementations for SSLv3 and TLS.
libcrypto (with platform specific naming):
Provides general cryptographic and X.509 support needed by SSL/TLS but
not logically part of it.
openssl:
A command line tool that can be used for:
Creation of key parameters
Creation of X.509 certificates, CSRs and CRLs
Calculation of message digests
Encryption and decryption
SSL/TLS client and server tests
Handling of S/MIME signed or encrypted mail
And more…*

2、库的功能

OpenSSL 库主要实现对称加密与非对称加密、密钥证书管理的功能。

①、加密

a、对称加密算法

OpenSSL 提供了8种对称加密算法,分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5、RC4。

b、非对称加密算法

OpenSSL提供了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH一般用于密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,但用于数据加密,RSA算法的速度比较慢。DSA算法则一般只用于数字签名。

②、摘要

OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。

③、生成密码

④、生成随机数

⑤、生成密钥对

⑥、证书管理

生成证书,颁发证书,吊销证书

二、安装目的

编译qt5.15.0 qtbase 模块时, 执行configure后,在生成的config.summary文件中,openSSL 和 openSSL 1.1 项总是no, 即不编译OpenSSL,加参数-feature-openssl_header

三、编译安装

OpenSSL库的下载 官网下载:
https://www.openssl.org/source/old/

OpenSSL库是用C语言实现的,可将其编译为库文件后再对其进行调用,可编译为静态库和动态库,编译安装的方法可以参考源码根目录的INSTALL文件和各个平台的NOTES文件。以下我们将简单介绍其在pc linux和嵌入式平台的快速编译安装方法。

1、x86 UNIX运行平台

例如在SUSE enterprise 15平台运行OpenSSL库。

①、解压源码,进入源码目录
②、配置

使用命令:
./config --prefix=绝对路径安装目录 (具体参考INSTALL文档)
由于默认的安装路径是/usr/local,属于系统目录,安装在此目录下,该Linux环境都能使用OpensSSL的命令工具(慎用,会影响系统原有的旧版本openssl),但有时我们只是为了将OpenSSL编译为库文件(build qtbase 模块要用特定版本的openssl),将其集成到我们的代码工程调用,而不像让当前的Linux安装OpenSSL命令,这时我们要先通过“–prefix”选项指定安装目录,方便我们将OpenSSL作为库使用。“–prefix”选项后带的是绝对路径。

eg:

./config --prefix=/home/workspace/openssl-build

③、编译

命令:
make

④、测试(optional)

make test

⑤、安装

命令:

make install
安装成功后,可以在“–prefix”指定的目录中看到**bin目录、lib目录、include share ssl 目录。

openssl加密命令 des3 openssl 加密套件_openssl

2、win10 64 位平台