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

79 Openssl3.0 RSA公钥加密数据

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.lryc.cn/news/518812.html

相关文章:

  • EFCore HasDefaultValueSql (续2 HasComputedColumnSql)
  • 阿里巴巴TransmittableThreadLocal使用指南
  • ubuntu20下编译linux1.0 (part1)
  • 欧拉公式和傅里叶变换
  • Jenkins内修改allure报告名称
  • 30天开发操作系统 第 12 天 -- 定时器 v1.0
  • Ubuntu | PostgreSQL | 解决 ERROR: `xmllint` is missing on your system.
  • uniapp使用chooseLocation安卓篇
  • 《PC 上的开源神经网络多模态模型:开启智能交互新时代》
  • Apache JMeter 压力测试使用说明
  • 腾讯云AI代码助手编程挑战赛-知识百科AI
  • 【SpringAOP】Spring AOP 底层逻辑:切点表达式与原理简明阐述
  • HTTP-响应协议
  • SQL进阶实战技巧:即时订单比例问题
  • 什么是端口
  • 【Flutter】使用ScrollController配合EasyRefresh实现列表预加载:在还未滑动到底部时加载下一页数据
  • 【2025 Rust学习 --- 11 实用工具特型01】
  • 网络安全基础以及概念
  • windows和linux的抓包方式
  • 【Uniapp-Vue3】v-if条件渲染及v-show的选择对比
  • 宝塔面板使用 GoAccess Web 日志分析教程
  • Windows 安装 Docker 和 Docker Compose
  • arcgis中用python脚本批量给多个要素类的相同字段赋值
  • 目标客户营销(ABM)结合开源AI智能名片2+1链动模式S2B2C商城小程序的策略与实践
  • 《异步编程之美》— 全栈修仙《Java 8 CompletableFuture 对比 ES6 Promise 以及Spring @Async》
  • 新模型设计:Hybrid Quantum-Classical Neural Network (HQCNN) for Image Classification
  • iOS 中spring动画的使用
  • 初学stm32 --- DMA直接存储器
  • 校医院挂号及预约 APP 的设计与实现
  • 代理模式详解与应用