1、RSA算法的理解:
生成两对密钥(公钥和私钥),一对给发送者(A)使用,一对给接收者(B)使用,加解密需要使用同一对密钥,因此,A需要使用B的公钥进行加密发送消息,B拿到消息后,才可以使用B自己的秘钥进行解密,这样传送的数据是安全的,但C也可能拿以公钥发送消息,所以B可能不知道这个消息是A还是C发的,所以就有了签名的概念。
2、加密,签名的作用:
加密:由第1点得到,B无法准确无法区分发送者的身份。
签名:A自己的密钥对,先把公钥给到B,然后A使用A自己的私钥生成签名,然后B就使用A的公钥进行校验签名。
# 模块安装:pip install pycryptodome
import base64
from Crypto import Random
from Crypto.Hash import SHA256
from Crypto.Cipher import PKCS1_v1_5 as Cipher_PKC
from Crypto.Signature import PKCS1_v1_5 as Signature_PKC
from Crypto.PublicKey import RSA
class HandleRSA():
def create_rsa_key(self):
# 创建RSA密钥 #
# 步骤说明:
# 1、从 Crypto.PublicKey 包中导入 RSA,创建一个密码
# 2、生成 1024/2048 位的 RSA 密钥
# 3、调用 RSA 密钥实例的 exportKey 方法,传入密码、使用的 PKCS 标准以及加密方案这三个参数。
# 4、将私钥写入磁盘的文件。
# 5、调用 publickey 和 exportKey 方法生成公钥,写入磁盘上的文件。
# 生成秘钥对实例对象:1024是秘钥的长度
random_gen