79 Openssl3.0 RSA公钥加密数据

C语言——基于OpenSSL 的RSA 签名验签算法 OpenSSL开源工程中,实现RSA签名方法有多种。该方法基于OpenSSL 3.0版本,调用OpenSSL EVP层的EVP_DigestSign*()与EVP_DigestVerify*()实现pss填充方式的RSA消息签名。消息摘要采用sha256计算,pss中的GMF1采用sha224计算。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include< open... 阅读详情

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!

新浪微博登录,QQ登录网页javascript脚本实现RSA加密的原理 今天在原来的系统上增加网页操作的功能,原来系统是JAVA写的,数据传输用的是RSA加密,为了实现网页登录,研究了javascript的RSA加密方法。 这个系统是一个移动电话会议系统,是手机上就能发起电话会议的为数不多的几个系统之一。 以前开发系统的时候是参考这篇文章写的 http://alunblog.duapp.com/?p=50 前段时间在开发欣所罗门公司自动化营销系统 阅读详情

相关推荐

若依(RuoYi)项目里,Quartz定时任务踩坑实录:并发控制、事务回滚与异常处理

本文深入解析若依(RuoYi)项目中Quartz定时任务的并发控制、事务回滚与异常处理三大核心问题。通过实战案例揭示@DisallowConcurrentExecution注解的局限性和Redis分布式锁的应用,详细讲解Spring事务集成方案及多数据源事务管理,并提供生产级监控体系搭建指南,帮助开发者规避Quartz在生产环境中的常见陷阱。

weixin_28731223的博客 408

OpenSSL3.0.5安装

openssl openssl3.0.5 证书 摘要 验签 工具

FLY的博客 9990

Kubernetes+EdgeX:构建企业级AI边缘推理平台

设备:工业摄像头(RTSP协议,输出1920x1080视频流);AI模型:YOLOv8训练的轴承裂纹检测模型(识别“裂纹”“正常”两种类型);目标:摄像头采集图像→EdgeX传输数据→K8s推理服务检测→结果反馈到报警器(HTTP协议)。Kubernetes+EdgeX的组合,为企业构建AI边缘推理平台提供了标准化、可扩展标准化:K8s的容器编排和EdgeX的设备管理,都是行业标准,避免“重复造轮子”;可扩展:支持从单边缘节点到 thousands of nodes 的规模,满足企业的增长需求;

AI算力网络与通信的博客 1344

OpenSSL 3.1.1 ECC 加密、解密、签名、验签(国密 sm2、sm3)

openssl 3 默认废弃了 旧版本 (opessl 1.x) 的部分api 导致部分旧ecc 代码无法使用(可以通过配置编译选项打开)新接口是真的方便,基本上你都不需要懂啥密码学知识,对我们这种密码白痴来说太好了。,这里展示如何使用新接口用ECC 进行加密解密。

Linuxsisohard的博客 1万+

西门子200SMART自定义库开发实战:从PID到露点算法的工业应用

本文详细介绍了西门子200SMART自定义库开发实战,涵盖从PID控制到露点算法的工业应用。通过代码封装技巧、多语言支持和性能优化等高级开发方法,帮助工程师提升PLC编程效率。文章特别强调了自创库在实际项目中的优势,如恒温恒湿控制系统的成功案例,展示了自定义库在工业自动化中的强大应用价值。

lake5的博客 1026

便携式水下动态实时视频色彩还原设备,一键快速实现对水下偏色视频和图像的色彩还原处理

便携式水下动态实时视频色彩还原,一键快速对水下图像进行色彩校正,清晰度提升和亮度均衡处理,为水下资源勘探和科学考古,海洋生态环境监测,水下机器作业等应用提供有力的协助

weixin_43518680的博客 633

在linux上升级安装openssl3.0+

在此不介绍openssl的作用和意义,只提供最傻瓜懒人式的openssl3.0安装教程,在博主爆肝半天时间综合了网上现有的解决办法得出的最傻瓜懒人式的openssl3.0安装教程。

m0_65803902的博客 3706

SpringBoot 整合 Drools:从环境搭建到复杂业务落地,精通规则引擎实战指南

本文介绍了Drools规则引擎的基础概念及其与SpringBoot的整合方法。首先概述了规则引擎的核心价值,包括业务规则解耦、可维护性提升等。重点讲解了Drools的核心组件(规则、事实、会话等)及其工作原理。随后详细说明了在SpringBoot项目中集成Drools的步骤,包括添加依赖、配置自动加载规则文件、创建KieContainer等关键配置类。文章还提供了完整的DRL规则文件示例和SpringBoot集成配置代码,为开发人员提供了从理论到实践的完整指导。通过这种方式,可以轻松实现业务规则与系统代码的

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1432

Linux C语言调用OpenSSL: RSA非对称加解密(填充模式PKCS1)

本文介绍在Linux环境下,使用c语言调用openssl库,实现RSA非对称加解密(填充模式PKCS1)。

Penseur2018的博客 2034

PCL DBSCAN密度聚类【2026最新版】

点云密度聚类的PCL代码实现,与matlab自带的密度聚类算法进行对比验证,结果一致。3万多个点能再2秒左右运行出结果,算法效率尚可。

点云侠的博客 5682

【DRAM存储器五十六】LPDDR5介绍--WCK2CK Leveling和Read gate training

简述LPDDR5 WCK2CK leveling和read gate traning基本原理与操作步骤

highman110的博客 8791

Python(30):非对称加密算法RSA的使用(openssl生成RSA公私钥对)

Python(30):非对称加密RSA的使用(openssl生成RSA公私钥对)

fen_fen的专栏 1855

药物相关 PK(药代动力) 、PD(药效)指标知识

PK代表药物的药代动力学,指的是药物在体内的吸收、分布、代谢和排泄等过程,包括药物的药代动力学参数如Cmax(最大血药浓度)、Tmax(最大血药浓度出现的时间)、t1/2(半衰期)、AUC(药物曲线下面积)等。PD代表药物的药效学,指的是药物与生物体相互作用所产生的药理效应,包括药物的药效学参数如EC50(半数最大有效浓度)、ED50(半数最大效应剂量)、Emax(最大效应)等。PD(Pharmacodynamics)则研究药物的药效学特性,如药物的作用机制、效力、最大疗效、最小毒性等。

weixin_42357472的博客 2万+

python加密解密库openssl_OpenSSL和Python实现RSA Key公钥加密私钥解密

基于非对称算法的RSA Key主要有两个用途,数字签名和验证(私钥签名,公钥验证),以及非对称加解密(公钥加密,私钥解密)。本文提供一个基于OpenSSL和Python进行非对称加解密的例子。1. OpenSSL实现非对称加解密1.1 生成私钥,并导出公钥生成2048 bit的PEM格式的RSA Key:Key.pem$ openssl genrsa -out Key.pem -f4 2048Ge...

weixin_39622988的博客 1078

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

[1075]openssl和python实现rsa加解密对比

显然msg.bin.enc1与msg.bin.enc2的md5不一样,二者的内容也不一样,也就是说,使用同一个RSA公钥对同一段数据加密,两次加密的结果不一样。重点来了,针对公钥处理的数据,其填充内容为伪随机的16进制字符串,每次操作的填充内容都不一样。第1节中,使用公钥key_pub.pem对数据msg.bin进行了加密,我们使用私钥key.pem解密看看加密前填充的数据。从签名数据的md5校验和看,msg.bin.sig1和msg.bin.sig2的md5值一样,其内容显然是一样的。

周小董 3914

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

openssl rsa 私钥加密,公钥解密测试

公钥加密,私钥解密时,因为加入随机数,每次得到的加密信息不固定。 私钥加密,公钥解密时,得到的加密信息固定。 #include<stdio.h>#include<string.h>#include<openssl/crypto.h>#include<openssl/err.h>#include<...

weixin_34114823的博客 406

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

使用php生成RSA公钥私钥及进行加密解密示例 和 Python使用RSA实现非对称加解密

搜了搜百度,很少有真正关于使用php生成RSA公钥私钥的文章,大多都是拿一个现成的公钥私钥字符串或文件在那里试验,多搜索了一些发现有调用RSA.php类的,而这些方法里还需要调用MATH类和BCMATCH之类的,反正我也没有试验成功。最后在PHP手册上找到了一个函数:openssl_pkey_export 进而发现了PHP生成公钥私钥的方法。PHP的手册里也有一些示例。

本博客记录了从2014年以来在工作学习中遇到的技术问题、解决方法以及部分个人人生经历、经验等内容。 2412

rsa java模数_RSA加密:利用模数和指数生成公钥加密

引子目前做一款金融产品,由于涉及到资金安全,采用动态公钥的方式,即客户端每次登录服务端返回一个不同的XML串,由公钥的模数和指数构成,我需要用这个串生成公钥加密相关信息。服务端返回的XML串形如:wVwBKuePO3ZZbZ//gqaNuUNyaPHbS3e2v5iDHMFRfYHS/bFw+79GwNUiJ+wXgpA7SSBRhKdLhTuxMvCn1aZNlXaMXIOPG1AouUMMfr...

weixin_39929918的博客 862

RSA的公钥和私钥验证

1,如果私钥在一行,openssl_pkey_get_private()就会返回false,所以我们要修改格式 $privateKey = "MIICXgIBAAKBgQDjI484irh8X8+/ahon/+frln74K7azpwHrvei70c2cpjFoW4ghkfQmhBkcqNj/OCyGAcDDw30v/PActXlPGqxT79E7zobAU4PbikkEoqnY440E4D...

dabao87的博客 2779

OpenSSL:基于RSA算法的签名和验证(原理+代码)

数字签名和验证(Digital signature and verification) 数字签名主要用于验证被签数据在传输过程中是否被篡改 包含加密算法(encryption)和摘要算法(digest) 摘要算法包括MD族和SHA族,特点是变长输入,定长输出,输出即为目标数据的摘要 加密使用RSA非对称算法,包括公钥和私钥,私钥对消息(Message)进行加密,公钥对数据和签名进行解密 ...

您的编程如已上线 1万+

JS到PHP使用RSA算法进行加密通讯

我们平时做用户登录表单提交,用户名密码都是明文直接POST到后端,这样很容易被别人从监听到。注:包括使用MD5等哈希函数处理后的数据,这里也算做明文(现在MD5爆破网站已经很多了~)。对安全性要求较高的网站,比如银行和大型企业等都会使用HTTPS对其进行加密通讯。但是由于效率原因,使用HTTPS的代价是及其昂贵的,对于访问量稍大的网站就会造成严重的性能瓶颈。解决方法一般只能采用专门的SSL硬件加速设备如F5的BIGIP等。所以很多网站选择了模拟SSL的做法,使用RSA来对密码等安全信息进行公钥加密,服务端用

Linvo's blog 1万+

OpenSSL和Python实现RSA Key公钥加密私钥解密

基于非对称算法的RSA Key主要有两个用途,数字签名和验证(私钥签名,公钥验证),以及非对称加解密(公钥加密,私钥解密)。本文提供一个基于OpenSSL和Python进行非对称加解密的例子。 1. OpenSSL实现非对称加解密 1.1 生成私钥,并导出公钥 生成2048 bit的PEM格式的RSA Key:Key.pem $ openssl genrsa -out Key....

洛奇看世界 1万+

(4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)

openssl rsa 是RSA对称密钥的处理工具 openssl pkey 是通用非对称密钥处理工具,它们用法基本一致,所以只举例说明openssl rsa。 它们的用法很简单,基本上就是输入和输出私钥或公钥的作用,或从私钥中提取出公钥,将文件中私钥或公钥的某部分内容输出到stdout openssl rsa [-in filename] [-passi...

weixin_30877493的博客 3889

使用 openssl AES RSA 对文件以及数据进行加解密

1.  使用对称密钥对信息串加密。

Winking_Zhu的专栏 2114

cryptapi双向认证_openssl生成RSA私钥、公钥,签名、验证签名,加密、解密

openssl其它日志:openssl生成RSA私钥、公钥,签名、验证签名,加密、解密http://my.oschina.net/u/1382972/blog/325442openssl生成x509根证书,查看证书信息,签发证书http://my.oschina.net/u/1382972/blog/325778openssl文件摘要(Message Digest)计算命令http://my.os...

weixin_33765593的博客 601
上一篇: 78 Linux libusb库USB HID应用编程笔记
下一篇: 80 7816协议与串口uart协议时序图
Chasing_Chasing
博客等级 码龄10年 233粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值