1、前言
很多童鞋在工作中,会遇到一些接口使用RSA加密和签名来处理的请求参数,那么遇到这个问题的时候,第一时间当然是找开发要加解密的方法,但是开发给加解密代码,大多数情况都是java,c++,js等语言实现的,加解密的代码虽然有了,但是咱们身为一个测试,使用python做的自动化,并不是什么语言都会,这个时候就会比较尴尬了,看着这一团加解密的代码,自己却不知从何下手,再去找开发给写个python版本的,开发估计不一定搭理你,就算搭理你,开发也未必会python,那么今天咱们就来讲讲如何通过python来实现RSA加解密和签名2、RSA 算法简介:
2、RSA 算法简介:
RSA加密算法是一种非对称加密算法,加密的秘钥是由公钥和私钥两部分组成秘钥对,公钥用来加密消息,私钥用来对消息进行解密,公钥是公开的,私钥则是用户自己保留的,由于公钥是公开的,那么任何人只要获取到公钥,都可以使用公钥来加密发送伪造内容,出于安全性考虑,在发送消息之前我们可以使用RSA来签名,签名使用私钥来进行签名,使用公钥来进行验签,通过签名我们可以确保用户身份的唯一性,从而提高安全性。
1、加密和签名的区别
加密:
比方现在有两个人A和B,A要给B传递机密的信息,为了避免信息泄露,B事先通过RSA加密算法生成了一对秘钥,并且将公钥事先给到A,私钥则自己保留,A给B传递消息的时候,先使用B给的公钥对消息进行加密,然后再将消息传递给B,B拿到加密后的消息,可以通过私钥对消息进行解密,消息在传递过程中就算被他人获取了也没关系,没有私钥就没办法对消息进行解密。但是这个时候还有一个问题,公钥一般都是公开的,会同时给到多个人,那么如果这个时候还有一个人C,获取到了这个公钥,他通过公钥对消息进行加密,想冒充A来给B发信息,那么B接受到信息之后,能够通过私钥来对消息进行解密,但是无法确认这个信息到底是不是A发的(有可能是别拿的公钥加密发的),为了区分发送者的身份,那么这个时候我们就要用到签名。
签名:
虽然我们通过加密能够确保发送的消息不被泄密,但是却无法区分发送者的身份,A用户为了区分自己的身份,同样也生成了一对秘钥,事先将公钥给到B&#x