python实现rsa非对称加密解密签名及验证代码
代码语言:python
所属分类:其他
代码描述:python实现rsa非对称加密解密签名及验证代码
代码标签: python rsa 非对称 加密 解密 签名 验证 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
import base64
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as Cipher_PKC
from Crypto import Random
from Crypto.Hash import SHA256
from Crypto.Signature import PKCS1_v1_5 as Signature_PKC
class HandleRSA():
def create_rsa_key(self):
"""
创建RSA密钥
步骤说明:
1、从 Crypto.PublicKey 包中导入 RSA,创建一个密码
2、生成 1024/2048 位的 RSA 密钥
3、调用 RSA 密钥实例的 exportKey 方法,传入密码、使用的 PKCS 标准以及加密方案这三个参数。
4、将私钥写入磁盘的文件。
5、使用方法链调用 publickey 和 exportKey 方法生成公钥,写入磁盘上的文件。
"""
# 伪随机数生成器
random_gen = Random.new().read
# 生成秘钥对实例对象:1024是秘钥的长度
rsa = RSA.generate(1024, random_gen)
# Server的秘钥对的生成
private_pem = rsa.exportKey()
with open("server_private.pem", "wb") as f:
f.write(private_pem)
public_pem = rsa.publickey().exportKey()
with open("server_public.pem", "wb") as f:
f.write(public_pem)
# Client的秘钥对的生成
private_pem = rsa.exportKey()
with open("client_private.pem", "wb") as f:
f.write(private_pem)
public_pem = rsa.publickey().exportKey()
with open("client_public.pem", "wb") as f:
f.write(public_pem)
# Server使用Client的公钥对内容进行rsa 加密
def encrypt(self, plaintext):
"""
client 公钥进行加密
plaintext:需要加密的明文文本,公钥加密,私钥解密
"""
# 加载公钥
rsa_key = RSA.import_key(op.........完整代码请登录后点击上方下载按钮下载查看
网友评论0