编写c语言程序调用openssl编译出的动态链接库

这篇具有很好参考价值的文章主要介绍了编写c语言程序调用openssl编译出的动态链接库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、编译生成链接库

下载安装openssl并编译生成链接库的过程在我的另一篇文章中已经详细说明了:Ubuntu中安装OpenSSL

此外,我们还需要提前了解一些关于动态链接库的知识,具体内容可以在我的这篇文章中查看:一个简单的动态链接库示例

二、示例一:调用RAND_bytes函数

要调用OpenSSL库中的函数,需要在对应的C源文件中包含相应的头文件,并将库文件链接到程序中。

下面是一个简单的示例,演示如何在一个名为main.c的文件中使用OpenSSL库中的函数。

#include <stdio.h>  
#include <openssl/rand.h>  
  
int main() {  
    // 生成一个随机的字节序列  
    unsigned char randomBytes[16];  
    RAND_bytes(randomBytes, sizeof(randomBytes));  
  
    // 打印生成的随机字节序列  
    printf("随机字节序列: ");  
    for (int i = 0; i < sizeof(randomBytes); i++) {  
        printf("%02x", randomBytes[i]);  
    }  
    printf("\n");  
  
    return 0;  
}

在这个示例中,引入了openssl/rand.h头文件,该文件包含RAND_bytes函数的声明。然后,在main函数中,通过调用了RAND_bytes函数来生成一个随机的字节序列,并将其打印出来。

要编译并链接这个程序,需要将OpenSSL库文件链接到该程序。可以使用下面的命令进行编译执行

gcc -o main main.c -lssl -lcrypto
./main

可以得到对应的输出结果

编写c语言程序调用openssl编译出的动态链接库,c语言,开发语言,openssl,.so,动态链接库,sha256

三、示例二:调用SHA256

首先新建一个main1.c文件,编写如下的代码

#include <stdio.h>  
#include <openssl/sha.h>  
  
int main() {  
    unsigned char data[] = "Hello, World!";  
    unsigned char sha256_result[SHA256_DIGEST_LENGTH];  
    SHA256(data, strlen((char*)data), sha256_result);  
    printf("SHA256 Result: ");  
    for (int i = 0; i < SHA256_DIGEST_LENGTH; i++) {  
        printf("%02x", sha256_result[i]);  
    }  
    printf("\n");  
    return 0;  
}

之后编译执行,即可得到对应的结果文章来源地址https://www.toymoban.com/news/detail-674856.html

gcc -o main1 main1.c -lssl -lcrypto
./main1

到了这里,关于编写c语言程序调用openssl编译出的动态链接库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 二叉树基本操作演示程序C语言编写

    问题描述:设计一个与二叉树基本操作相关的演示程序 要求:开发工具Dev C++   c语言编写 1.创建二叉树。 2.将创建的二叉树,以树状形式输出。 3.分别以先序、中序、后序三种遍历方式访问二叉树。 4.输出二叉树中的叶子结点以及叶子结点的个数。 5.输出二叉树的高度。 代

    2024年02月08日
    浏览(47)
  • 为什么选择Go语言编写网络应用程序

    关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力! 作为一名后端开发者,你一定对选择合适的编程语言来编写网络应用程序非常重视。在众多的编程语言中,Go语言(Golang)凭借其独特的特性和

    2024年02月02日
    浏览(89)
  • 使用VScode编写C语言程序 环境安装配置 保姆级教程

    Visual Studio Code可通过安装插件来支持C++、C#、Python、PHP等语言,使用的工程师越来越多,本文介绍如何使用VS Code进行C语言的编译与调试 目录 一 vsCode配置C/C++环境 1. vsCode下载和安装 2. 安装vsCode 二 MinGW编译器下载和配置 1. 下载编译器MinGW并解压  2. 将MinGW添加至环境变量 3

    2024年02月04日
    浏览(71)
  • C语言爬虫程序编写的爬取APP通用模板

    互联网的飞快发展,尤其是手机终端业务的发展,让越来越多的事情都能通过手机来完成,电脑大部分的功能也都能通过手机实现,今天我就用C语言写一个手机APP类爬虫教程,方便后期拓展APP爬虫业务。而且这个模板是通用的适合各种APP爬虫,下面跟着我看下具体的代码吧。

    2024年01月18日
    浏览(50)
  • C语言中程序的编译(预处理操作)+链接详解(详细介绍程序预编译过程)

    今天我们来学习C语言中程序的编译和链接是如何进行的。 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。 本文主要是介绍预编译阶段的相关知识。 1.组成一个程

    2023年04月09日
    浏览(38)
  • 程序的编译相关操作(C语言)

    📜📜📜📜📜📜📜📜📜📜📜📜📜📜📜 📜📜📜📜📜📜秋已深📜📜📜📜📜📜📜 📜📜📜📜 📜📜 冬将至 📜📜📜📜📜📜 📜📜📜📜📜人间至此秋色尽📜📜📜📜📜 📜📜📜📜📜一世繁华一世荒📜📜📜📜📜 📜📜📜📜📜📜📜📜📜📜📜📜📜📜

    2024年02月21日
    浏览(43)
  • 程序环境和预处理(含C语言程序的编译+链接)--2

    文章前言: 上章我们把      程序的翻译环境     程序的执行环境   C语言程序的编译+链接     预定义符号介绍    预处理指令   #define    宏和函数的对比     预处理操作符    #和##的介绍   的相关知识进行了梳理讲解,接下来被把剩余知识    命令定义     预处

    2024年02月14日
    浏览(55)
  • Ubuntu 用gcc/CMakefile编译器 编译、运行c语言程序

    目录 一. 在Ubuntu系统下用c语言编写一个简单的输出hello world 的程序,并编译、运行。 1.1 gcc/g++简介 1.2 c++程序输出 Hello World: 1.3 c语言程序输出 Hello World: 二. 编写一个主程序文件main1.c和一个子程序文件sub1.c,实现函数间的调用 2.1  编写sub1.c 和main1.c 函数 2.1.1 编写sub1.c函数

    2024年02月04日
    浏览(50)
  • C语言程序设计:编写函数,统计字符串中数字字符的个数

    题目内容: 编写函数,求给定字符串中数字字符的个数,在主函数中输入字符串及输出统计的个数。 输入格式: %s 输出格式: %d 输入样例: abc123fg 输出样例: 3 时间限制:500ms内存限制:32000kb

    2024年02月11日
    浏览(67)
  • 【编译原理】词法分析程序设计(C语言)

      给定下表所示的一个简单语言的词法规则描述完成以下任务: (1)画出识别该语言词法规则的 状态转换图 ; (2)依据状态转换图,设计并编制词法分析程序,实现从输入源程序中,识别出各类单词,即 、标识符、常数、运算符、界符 五大类,并输出各个单词

    2024年02月15日
    浏览(69)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包