API接口签名验签和加密解密原理

一、签名验签和加密解密

       API接口实际上是系统间的通信过程,A系统向B系统传输参数,B向A返回结果。一般应用场景是和其他外部公司有接口对接的场景。

       为了让大家不弄混:大家记住,A系统持有B系统的公钥。B系统持有A系统公钥。

二、数字签名

       数字签名一般用于防篡改。发送方签名,接收方验签。A系统向B系统传输数据,需要用A系统的私钥对传输数据进行签名。B系统接收到A系统传进来的参数,用A系统的公钥进行验签。

三、加密解密

       数据加密的基本过程,就是对原来明文数据进行处理。使其成为不可读的数据,保护数据不被非法人窃取,通常称为密文。加密的逆过程就是解密

       常见的对称加密 算法主要有 DES、3DES、AES 等,常见的 非对称算法主要有RSA、DSA 等,散列算法 主要有 SHA-1、MD5 等。

       对称加密又称为共享秘钥加密

       非对称加密,需要两个秘钥,一个是公钥、一个是私钥

       项目中使用的是SHA256withRSA(RSA2)简单介绍。 

四、总结

       一般进行接口对接的时候,比如A系统向B系统传输数据。先用A系统的私钥对数据进行签名,然后再用B系统的公钥对数据+签名进行加密。B系统接收到数据先通过B系统的私钥对数据进行解密,再通过A系统的公钥对数据进行验签。最终拿到传输的数据。 

             

OpenSSL是一个开源的加密库,它提供了RSA加密、解密签名验签的功能。 对于RSA加密和解密,我们可以使用OpenSSL提供的命令行工具或者API来实现。 使用命令行工具,我们可以通过以下命令进行RSA加密: openssl rsautl -encrypt -in <input file> -out <output file> -inkey <public key file> -pubin 其中,<input file>是要加密的文件,<output file>是加密后的文件,<public key file>是存储公钥的文件,-pubin参数表示输入的是公钥。 使用命令行工具,我们可以通过以下命令进行RSA解密: openssl rsautl -decrypt -in <input file> -out <output file> -inkey <private key file> 其中,<input file>是要解密的文件,<output file>是解密后的文件,<private key file>是存储私钥的文件。 对于RSA签名验签,我们可以使用以下命令进行签名: openssl rsautl -sign -in <input file> -out <output file> -inkey <private key file> 其中,<input file>是要签名的文件,<output file>是签名后的文件,<private key file>是存储私钥的文件。 使用以下命令进行验签: openssl rsautl -verify -in <input file> -out <output file> -inkey <public key file> -pubin 其中,<input file>是要验签的文件,<output file>是验签后的文件,<public key file>是存储公钥的文件,-pubin参数表示输入的是公钥。 使用OpenSSL的API进行RSA加密、解密签名验签的操作也是类似的,我们可以通过调用相应的函数来实现。需要注意的是,API的使用需要在代码中显式引入OpenSSL的头文件和链接OpenSSL的库文件。 总之,OpenSSL提供了便捷的工具和API来实现RSA加密、解密签名验签的功能,无论是命令行工具还是API,都可以选择合适的方式进行操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值