rsa验签中文_RSA签名及验签原理解析

本文详细介绍了RSA签名和验签的原理,包括公钥和私钥的概念,数字签名的作用,以及如何使用公钥和私钥进行加密解密。通过示例代码展示了生成公私钥对、私钥加密签名和公钥解密验签的过程,并澄清了关于公钥和私钥使用的一些误区。
摘要由CSDN通过智能技术生成

一、名词解释

公钥

RSA 密钥体系中对外公开的部分,通常用于数据加密、验证数字签名。

私钥

RSA 密钥体系中非公开的部分,通常用于数据解密、数据签名。

数字签名

就是只有信息的发送者才能产生的,别人无法伪造的一段数字串,它同时也是对发送者发送的信息的真实性的一个证明。

二、为什么要使用签名

在系统间报文交互为保证上送报文可靠性[防止中间人攻击],通常做法是在报文中加上校验字[数字签名],并约定好相关算法。

三、实现

为方便系统间交互,本文直接讲述原理,对于RSA_sign 及 RSA_verify的使用下期进行介绍。

签名对需要上送的报文[en_data]计算特征值[sign_block],相关算法包括[md5、sha1、sha256、sha512等等]。

使用私钥[pri_key]对sign_block加密获得数字签名[sign]。

将sign与en_data打包发送给对方。

验签解析收到的报文,拆分为sign 及 en_data。

对en_data计算特征值[sign_block],相关算法包括[md5、sha1、sha256、sha512等等双方协商]。

使用公钥[pub_key]对sign解密,获得sign_block1。

比较sign_block 和 sign_block1,若匹配则验证成功,报文未被篡改。

生成公私钥对int rsa_gen_der_key(int KEY_LENGTH, unsigned char * prik, unsigned char * pubk) {

int ret = 1;

RSA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值