79 Openssl3.0 RSA公钥加密数据

news/2025/1/13 0:34:57/

1 引言

        最近不小心用到了openssl3.0,项目中需要使用rsa非对称加解密算法,所以把openssl3.0使用公钥加密数据的函数调用摸了一遍。

        之所以记录此篇文章,是因为网络上大多数是openssl3.0以前的版本的函数接口,而openssl3.0之后已经丢弃了很多旧接口了,导致我网上搜索例程的时候,不是很顺利(看到的基本都是旧接口不能用),因此特此记录。

2 实验

        废话少说,直接上代码:

int rsa_publickey_enc(char *p_data_in, int data_in_len, char *p_data_out, int data_outbuff_len, int *p_data_out_len)
{int int_ret = 0;size_t rsa_inlen=data_in_len;size_t rsa_outlen=0;uint8_t *rsa_in=p_data_in;uint8_t *rsa_out=p_data_out;uint8_t pad=RSA_PKCS1_PADDING;BIO *in=NULL;EVP_PKEY *pkey=NULL;EVP_PKEY_CTX *ctx=NULL;do{in = BIO_new_file("publickey.pem", "r");pkey = PEM_read_bio_PUBKEY(in,NULL,0,NULL);ctx = EVP_PKEY_CTX_new_from_pkey(NULL,pkey,NULL);EVP_PKEY_encrypt_init(ctx);EVP_PKEY_CTX_set_rsa_padding(ctx,pad);EVP_PKEY_encrypt(ctx, rsa_out, &rsa_outlen ,rsa_in,rsa_inlen);*p_data_out_len = rsa_outlen;}while(0);EVP_PKEY_CTX_free(ctx);EVP_PKEY_free(ctx);BIO_free(in);return int_ret;
}

至于上述代码返回值得判断啥的,我就没有判断了(注意:实际使用时请按编码规范编程)。

以上,over!


http://www.ppmy.cn/news/1562652.html

相关文章

“多维像素”多模态雷视融合技术构建自动驾驶超级感知能力|上海昱感微电子创始人蒋宏GADS演讲预告

2025年1月14日,第四届全球自动驾驶峰会将在北京中关村国家自主创新示范区展示交易中心-会议中心举行。经过三年的发展,全球自动驾驶峰会已经成长为国内自动驾驶领域最具影响力、规模最大的产业峰会之一。在主会场下午的城市NOA专题论坛上,上海…

【学习路线】Python数据分析(数据科学) 详细知识点学习路径(附学习资源)

学习本路线内容之前,请先学习Python的基础知识 其他路线: Python基础 >> Python进阶 >> Python爬虫 >> Python数据分析(数据科学) >> Python 算法(人工智能) >> Pyth…

mysql -> 达梦数据迁移(mbp大小写问题兼容)

安装 注意后面初始化需要忽略大小写 初始化程序启动路径 F:\dmdbms\tool dbca.exe 创建表空间,用户,模式 管理工具启动路径 F:\dmdbms\tool manager.exe 创建表空间 创建用户 创建同名模式,指定模式拥有者TEST dts 工具数据迁移 mysql -&g…

Oracle OCP考试常见问题之线上考试流程

首先要注意的是:虽然Oracle官方在国际上取消了获得OCP认证需要培训记录的要求,但在中国区,考生仍然需要参加Oracle的官方或者其合作伙伴组织的培训,并且由Oracle授权培训中心向Oracle提交学员培训记录。考生只有在完成培训并通过考…

电源故障导致服务器无法启动的解决方法

电源故障是导致服务器无法启动的常见问题之一。这可能会影响企业的正常运营和数据安全。本文将介绍电源故障的常见原因及相应的解决方法,以帮助快速排查和恢复服务器的正常运行。 1. 检查电源连接 1.1 确保电源线连接正常 检查电源线是否牢固连接到服务器和电源插…

微服务滚动法布

滚动发布:1.启动新的服务并进行健康检查——2.新服务启动——3.杀老服务-----4.发送curl到nacos下线—5.等待10S-------6.杀老服务 在Nacos中,服务实例的上下线状态是由服务实例自身通过心跳机制与Nacos服务器交互来维持和控制的。当服务实例启动时&…

生成式数据增强在大语言模型中的应用与实践

引言 近年来,大语言模型(Large Language Models, LLMs)如GPT、BERT等在自然语言处理(NLP)领域取得了巨大突破。然而,这些模型的性能往往依赖于大量高质量的训练数据,而在许多实际应用场景中&am…

opencv的NLM去噪算法

NLM(Non-Local Means)去噪算法是一种基于图像块(patch)相似性的去噪方法。其基本原理是: 图像块相似性:算法首先定义了一个搜索窗口(search window),然后在该窗口内寻找…