如何做话费卡回收网站,雨颜色网站建设,叫人做国外公司网站让老外做好还是国内人做好,广告设计速成班多少钱目录#xff1a; 目录#xff1a; 一、什么是openssl#xff1f; 二、所需要具备的开发工具 三、Windows上编译OpenSSL3.0 四、Linux编译openssl3.0 一、什么是openssl#xff1f;
OpenSSL 是一个开源的软件库#xff0c;它提供了一系列加密工具和协议#xff0c;主要用…
目录 目录 一、什么是openssl 二、所需要具备的开发工具 三、Windows上编译OpenSSL3.0 四、Linux编译openssl3.0 一、什么是openssl
OpenSSL 是一个开源的软件库它提供了一系列加密工具和协议主要用于实现安全通信如在网络上的数据传输。它支持多种加密算法包括对称加密、非对称加密、散列函数、伪随机数生成器、数字签名、密钥交换以及证书管理等。
在 2020 年 5 月 15 日OpenSSL 发布了 3.0 版本的 Alpha2 测试版这个版本的一个显著特点是增加了对中国国家密码管理局推荐的密码算法国密的支持包括 SM2非对称加密算法、SM3散列算法和 SM4对称加密算法。
OpenSSL 不仅是一个独立的工具包它还被广泛集成到其他软件中以提供加密和安全通信功能。例如
MySQL一个流行的开源关系数据库管理系统可以使用 OpenSSL 来加密客户端和服务器之间的通信。Python一种广泛使用的编程语言其标准库中包含了使用 OpenSSL 的模块如 ssl 模块用于实现 SSL/TLS 加密。libevent一个事件通知库它可以在网络编程中使用 OpenSSL 来提供加密的网络通信。
二、所需要具备的开发工具
安装好Vs2019社区版本
下载openssl.vip
安装好ubuntu18.04系统 图2-1 vs2019社区版下载 图2-2 openssl-3.0.0源码下载 图2-3 openssl-3.0.0源码中获取到的文件
三、Windows上编译OpenSSL3.0
openssl.vip安装过程和工具下载
安装vs2019 perl 配置nasm
将这里的nasm压缩包解压 得到这些文件 配置环境变量 打开x86编译工具 生成项目文件perl Configure VC-WIN32 perl Configure VC-WIN64A --prefix%cd%\out
运行控制台x86 Native Tools Command Prompt for VS2019 nmake 重新生成makefile
perl Configure VC-WIN632 出现没有找到dmake的错误 修改makefile文件 黄色标记处将: /O2 修改为 /Od并注意去除 /debug项否则生成的Release版本哦
再次nmake nmake install进行编译 生成以下目录 四、Linux编译openssl3.0
Linux中的相关配置安装
root100ask:~# apt-get install groot100ask:~# apt-get install make root100ask:~# apt-get install gdb root100ask:~# apt-get install git root100ask:~# apt-get install wget 下载openssl源码
root100ask:~# wget https://www.openssl.org/source/openssl-3.0.0-alpha2.tar.gz进行解压源代码
root100ask:~# tar -xvf openssl-3.0.0-alpha2.tar.gz 进入子路径:
root100ask:~# cd openssl-3.0.0-alpha2生成makefile
root100ask:~/openssl-3.0.0-alpha2# ./config#三十二线程编译
root100ask:~/openssl-3.0.0-alpha2# make -j32#安装so库头文件和说明文档
root100ask:~/openssl-3.0.0-alpha2# make install
openssl命令行usr/local
root100ask:~# cd /usr/local 配置安装在usr/local/ssl
头文件/usr/local/include/openssl
so库文件usr/local/Iib
将此项目示例放入到Linux中 test_openssl.cpp 生成随机数字
#include iostream
#include openssl/rand.h
#include openssl/des.h
#include openssl/bio.h
#include time.h
#include thread// 在Windows平台下为了解决链接问题需要包含applink.c
#ifdef _WIN32
#include openssl/applink.c
#endifusing namespace std;int main(int argc, char *argv[])
{cout 测试 OpenSSL endl;// 使用时间戳作为随机数的种子time_t t time(0);RAND_seed(t, sizeof(t));auto mem_bio BIO_new(BIO_s_mem());// 生成随机数unsigned char buf[16] {0};int len sizeof(buf);int re RAND_bytes(buf, len);for (int i 0; i len; i){cout [ (int)buf[i] ];}// 清理资源BIO_free(mem_bio);return 0;
}使用 OpenSSL 库生成随机数的一个简单示例代码首先打印出 测试 OpenSSL然后使用当前时间作为种子来初始化随机数生成器。接下来创建了一个内存 BIO 对象并使用 RAND_bytes 函数生成了一个 16 字节的随机数。最后代码遍历并打印出随机数的每个字节。在结束前代码释放了分配给 BIO 对象的资源。 编写makefile
first_openss:test_openssl.cppg $^ -o $ -I/usr/local/include -L/usr/local/lib -lcrypto