记录一次Windows11安装并使用OpenSSL

这篇具有很好参考价值的文章主要介绍了记录一次Windows11安装并使用OpenSSL。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、版本说明

操作系统:Windows11
MinGW-64版本:gcc version 8.1.0 (x86_64-posix-sjlj-rev0, Built by MinGW-W64 project)
OpenSSL版本:OpenSSL 3.2.0 23 Nov 2023 (Library: OpenSSL 3.2.0 23 Nov 2023)

二、MinGC和OpenSSL的安装

MinGC安装教程:https://zhuanlan.zhihu.com/p/76613134
OpenSSL安装教程:https://www.cnblogs.com/dingshaohua/p/12271280.html

三、使用OpenSSL库实现AES加密

新建一个aes_encrypt.c文件,源码如下:

#include <openssl/aes.h>
#include <openssl/rand.h>
#include <stdio.h>
#include <string.h>

int main() {
    // 原始数据
    unsigned char text[] = "这是一个测试文本";
    
    // 密钥
    unsigned char aes_key[32];
    RAND_bytes(aes_key, sizeof(aes_key)); // 生成随机密钥

    // 加密的输出数据
    unsigned char enc_out[sizeof(text)];
    memset(enc_out, 0, sizeof(enc_out));

    // 设置加密密钥
    AES_KEY enc_key;
    AES_set_encrypt_key(aes_key, 256, &enc_key);

    // 加密
    AES_encrypt(text, enc_out, &enc_key);

    printf("原文: %s\n", text);
    printf("加密后: ");
    for (size_t i = 0; i < sizeof(text); i++) {
        printf("%x", enc_out[i]);
    }
    printf("\n");

    return 0;
}

保存并使用gcc编译。编译命令

gcc aes_encrypt.c -o aes_encrypt -ID:\02-dev-tool\OpenSSL-Win64\include -LD:\02-dev-tool\OpenSSL-Win64\lib -lssl -lcrypto

这时候编译出现报错,具体报错信息:

D:/02-dev-tool/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lssl
D:/02-dev-tool/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lcrypto
collect2.exe: error: ld returned 1 exit status

四、解决问题

查阅了一堆晚上的资料,基本没有找到解决方案,大体都是让我排查OpenSSL和MinGW是否安装正确。还有就是让我加上-I和-L参数。但是都没有解决。最终还是得我强大的ChatGPT帮忙解答了。
这里有几张截图,是ChatGPT帮我解答的一些问题:
win11下安装openssl,c语言
win11下安装openssl,c语言
一共解惑了我的两个问题

  • 通过exe安装的openssl,在libssl.lib搜索出来安装的目录下搜索出来三个,分别是…\VC\x64\MD,…\VC\x64\MDd,…\VC\x64\MT,…\VC\x64\MTd,该使用哪个?
  • gcc aes_encrypt.c -o aes_encrypt -IC:\OpenSSL-Win64\include -LC:\OpenSSL-Win64\lib\VC\x64\MT -lssl -lcrypto
    编译还是报错,cannot find -lssl cannot find -lcrypto
    最后的结论是因为我安装的MinGW识别不了.lib文件,需要将.def文件生成.a文件,最后再通过下边的命令编译成功。
gcc -fexec-charset=GBK aes_encrypt.c -o aes_encrypt -ID:\02-dev-tool\OpenSSL-Win64\include -LD:\02-dev-tool\OpenSSL-Win64\lib\VC\x64\MT D:\02-dev-tool\OpenSSL-Win64\lib\VC\x64\MT\libssl.a D:\02-dev-tool\OpenSSL-Win64\lib\VC\x64\MT\libcrypto.a

最后就是激动人心的执行编译后的可执行文件:

aes_encrypt.exe

执行结果:
win11下安装openssl,c语言文章来源地址https://www.toymoban.com/news/detail-858783.html

到了这里,关于记录一次Windows11安装并使用OpenSSL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows openssl安装和基本使用(代码演示)

    本文主要讲到了openssl的基本使用方法,开发环境为windows,开发工具为VS2019.本文主要是说明openssl如何使用,不介绍任何理论知识,如果有不懂的,请自行百度。 个人建议下一个everything查询工具,真的很好用,比window自带的查询快了很多,可以查询自己想要的文件 安装过程网

    2023年04月09日
    浏览(42)
  • Windows环境下C++ 安装OpenSSL库 源码编译及使用(VS2019)

    参考文章 https://blog.csdn.net/xray2/article/details/120497146 之所以多此一举自己写多一篇文章,主要是因为原文内容还是不够详细。而且我安装的时候碰到额外的问题。 一般情况下,引入别人的库,要么把代码直接搞进去,一起编译。要么引入库和头文件(就像MYSQL那样),都不复杂

    2024年02月14日
    浏览(42)
  • 学习记录:Windows系统cuda11.6,安装pytorch1.12.0、python3.9

    1、查看显卡相关信息:nvidia-smi。显卡版本531.18,最大可以安装cuda12.1版本,安装步骤上一篇博客讲解过。 2、查看cuda版本:nvcc -V 3、查看anaconda是否安装:conda -V 4、查询cuda11.6对应的pytorch版本:https://pytorch.org/get-started/previous-versions/ 显示对应的pytorch1.12.0、1.12.1,接着查询适

    2023年04月17日
    浏览(43)
  • 记录Stable-Diffusion-Webui 在Windows11的Anaconda环境下的避坑安装

    #记录工作,工作复盘 仅作记录,未尽之处请补充,谢谢! 电脑配置情况大致记录如下,请参考: MSI移动工作站,64G内存,4GB显存 阅读文档,明确软件依赖和安装要求: 在用Anaconda环境下安装stable-diffusion-webui之前,电脑上先要安装有以下软件: 1、Anaconda 首先安装 Anaconda,

    2024年02月01日
    浏览(66)
  • 记录一次WIN11开机在登录页面循环的问题

    记录一次由于未进行win密码设置,导致开机后卡在登录界面无法登录进去的问题。最后完美解决了。 开机后,显示用户登录界面,但是和以往不同,没有了密码输入框,只有一个“登录”按钮孤零零地显示在屏幕中间,点击后也没有任何反应。 由于之前设置了远程登陆,所

    2023年04月09日
    浏览(31)
  • 杂记 | 记录一次使用Docker安装gitlab-ce的过程(含配置交换内存)

    最近想自建一个gitlab服务来保存自己的项目,于是找到gitlab-ce的方式。 开工前先梳理一下状况: 具备一台云服务器(我用的腾讯云) CentOS7的系统,已安装好了docekr和docker-compose(如果没装先自行装一下) 服务器内存为4G(这个内存有点吃紧,先凑合用) 服务不直接对外暴露

    2024年02月13日
    浏览(47)
  • windows10/11安装和使用docker

            最近在linux服务器上使用docker安装软件很方便快捷,但是linux服务器是公司的需要连vpn才行,不太方便,就想着在自己windows电脑上装一个docker玩玩(主要是方便,安装mysql什么的几个命令行就完事儿),当然大家电脑配置够用的话也可以在自己电脑上安装linux虚拟机

    2024年02月21日
    浏览(37)
  • [电脑使用技巧]Windows 11安装安卓手机APP

    如果你的电脑已经运行Windows 11,经常在电脑和手机来复制内容,那我们为什么不在Windows 上实现安卓APP的应用呢?其实操作真的非常简单,我们接下来给大家分享下如何实现在Windows 11的系统上安装的app。只要按照下面的步骤逐个完成你就可以开启电脑上使用安卓APP的步骤了。

    2024年02月12日
    浏览(60)
  • windows如果快速安装OpenSSL(懒人安装)

    ​OpenSSL是一个功能丰富且自包含的开源安全工具箱,提供一系列的开发组件,提供出来的API可供使用。应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。 1. Openssl环境安装 下载地址:Win32/Win64

    2024年02月13日
    浏览(45)
  • Debian 11 编译安装 git 2.42.0(基于 OpenSSL)

    git 克隆远程仓库时默认使用 gnutls,正常情况下没有任何问题。当使用 gitlab 时,如果把 gitlab 放在代理后面(如:放在 nginx 后面),则可能会出问题。例如报错: gnutls_handshake() failed: Handshake failed 。此时可以通过自己编译使用 OpenSSL 的 git 来解决这个问题。 上面的问题已经确

    2024年02月15日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包