openssl 加密库
SSL是Secure Sockets Layer(安全套接层协议)的缩写。在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。
SSL是利用公开密钥的加密技术(RSA)来作为用户端与服务器端在传送机密资料时的加密通讯协定。
OpenSSL采用C语言作为开发语言,这使得OpenSSL具有优秀的跨平台性。
相关网址
ps:openssl版本之间并不兼容,许多库会依赖指定版本的opensssl,如果你发现编译时发生链接之类的错误,那便是你安装的openssl版本并不是作者库本身使用的openssl版本。
一般windows平台则可以直接通过安装的exe直接进行安装,该安装会直接设置好cmake之间的关系。也可以通过vcpkg安装,这样的安装则可以通过vcpkg相关的方式引入进项目中使用,笔者比较推荐。
Linux平台可以通过指令直接安装,也可以通过源码编译。
指令安装
//更新apt下载源节点
sudo apt update
//查看当前apt下载源节点里libssl-dev可下载安装的所有版本,和默认的最合适的版本
sudo apt-cache policy libssl-dev
//下载并默认安装libssl-dev(默认的版本)
sudo apt install libssl-dev
//如果要指定安装某个版本
sudo apt install libssl-dev=版本号
如果是自己编译的话则需要,增加环境路径,这里不写编译方式,默认老三件套。
cmake .. && make && sudo make install
// 增加可执行文件的路径
export PATH =$PATH:/usr/local/openssl/bin
// 增加静态库路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/openssl/lib
// 增加动态库路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib
// gcc编译器找到头文件(xx.h)的路径,写C++程序一般都不会用到gcc,所以这个可以忽略不写
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/openssl/include