当前位置: 首页 > news >正文

C库OpenSSL安装与VisualStudio配置

目录

OpenSSL主要功能

一、安装OpenSSL

二 安装

三 目录结构(配置)

四、为Visual Studio2022项目配置OpenSSL


OpenSSL 是一个开源的加密库,广泛用于实现安全通信协议和数据加密。它提供了一系列的加密算法和工具,主要用于以下几个方面:

OpenSSL主要功能

  1. 加密与解密(免杀静态)

    • 支持对称加密和非对称加密算法,如 AES、RSA、DES 等。
  2. 数字证书

    • 提供生成和管理数字证书的功能,支持 X.509 证书标准。
  3. 安全通信协议

    • 实现了 SSL(安全套接层)和 TLS(传输层安全性)协议,用于保护网络通信的安全。
  4. 哈希函数

    • 提供多种哈希函数,如 SHA-256、MD5 等,用于数据完整性校验。
  5. 随机数生成

    • 提供强随机数生成器,确保加密操作的安全性。

一、安装OpenSSL

1.下载OpenSSL

  • Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions可以下载已经编译好的包含 lib 和 include 文件的安装包

    • 有Win32和Win64可选,这里的位数指的是你使用OpenSSL开发出来的软件的位数版本,而不是你计算机的位数。

    • 注意,不要下载 light 版本,因为 light 版本不带 lib 和 include。

  • https://slproweb.com/products/Win32OpenSSL.html

      二 安装

      • 我选择安装到C:\Program Files\OpenSSL-Win64目录下,选择把dll复制到OpenSSL目录下方便后续查找路径。

      • 后续一直点击Next,最后点击Install开始安装。

          三 目录结构(配置)

          • 我们来看看他的目录结构。

            • bin:包含了测试程序、存储证书和密钥的文件(*.pem)。

            • include:包含了所有的头文件(例如:aes.h、md5.h)。

            • lib:包含了所有的库文件(例如:libcrypto.lib、libssl.lib)。

          • 我安装的OpenSSL的lib目录下,有四个文件夹。

          • 它们四个的不同点在于:

            • MD(多线程 DLL 版本)用于 Release 模式。

            • MDd(多线程 DLL 版本,调试)用于 Debug 模式。

            • MT(多线程静态版本)用于 Release 静态链接。

            • MTd(多线程静态版本,调试)用于 Debug 静态链接。

            • 具体选用哪个lib目录,可根据自己情况选择。

          2.测试环境变量是否配置成功

          • 打开运行窗口,输入cmd打开命令框,执行命令:openssl version,如果可以给出OpenSSL的版本即可证明已成功安装并成功配置环境变量。

          四、为Visual Studio2022项目配置OpenSSL

          • 将include路径添加到外部包含目录,将lib路径添加到库目录

          • 头文件目录C:\Program Files\OpenSSL-Win64\include

          • 库文件选择多线程静态调试版本,目录C:\Program Files\OpenSSL-Win64\lib\VC\x64\MTd

          2.链接OpenSSL库

          • 具体步骤为:链接器 -> 输入 -> 附加依赖项,将下面两项添加到附加依赖项

          • libssl.lib

          • libcrypto.lib

          • 将bin目录下的libcrypto-3-x64.dll、libssl-3-x64.dll文件复制到项目文件下

          程序测试

          http://www.dtcms.com/a/609429.html

          相关文章:

        • ppt模板免费下载网站不需要登录网页设计的三大基本技术
        • 什么是营销型网站?h5可以连接别的网站吗
        • Android13修改系统支持gps同步时间
        • Webpack到Vite:构建工具迁移实战经验总结
        • QT音乐播放器18----新歌速递播放、隐藏顶部和底部工具栏、自定义ToolTips
        • 工控一体机在超声波清洗机中的应用
        • Qt5配置MSVC2017
        • 【AI】基于YOLO11-SEG的PCB缺陷检测与分类系统实现_3
        • 2. Qt深入 线程
        • [Godot] C#基于噪声的简单TileMap地图生成
        • Linux(4)—— 基础开发工具
        • 广州好的网站设计公司如何建单位网站
        • 无损改造+智能防控,安科瑞ASCB3为古建筑与历史街区量身打造安全用电解决方案
        • 解决“Move to iOS 卡在准备中”的 9 种有效方法
        • iOS IPA 上传工具全面解析,从 Transporter 到开心上架(Appuploader)命令行的高效上架实践
        • iOS性能调优的系统化实践,从架构分层到多工具协同的全流程优化指南(开发者深度版)
        • GitHub爆火开源项目——RustScan深度拆解
        • iOS和安卓应用上架全指南:从备案到审核发布
        • 海外购物网站排名云商网站建设
        • 解决 Node.js 18+ 构建错误:digital envelope routines::unsupported 完全指南
        • 索尼PSP游戏资源下载 推荐中文汉化ios格式合集分享开源掌机模拟器都支持
        • 【赵渝强老师】OceanBase的连接与路由管理
        • 教育网站建设情况报告长安高端装备网站设计公司
        • Unity游戏打包加密方案解析
        • 考研论文引用格式 AI 校验实操:工具合集 + 技术原理
        • Linux:安装 ActiveMQ 从部署到实践
        • 思政部网站建设总结汕头cms模板建站
        • 云原生与 AI 驱动下的数据工程新图景——解读 DZone 数据工程趋势报告【附报告下载】
        • Linux——解压缩各类文件
        • 基于STM32的多功能旅行箱_329