python3 RSA非对称加解密

rsa 加解密的库使用 pip3 install rsa

生成公钥私钥:

import rsa

public, private = rsa.newkeys(1024)    # 生成公钥、私钥

private = private.save_pkcs1()  # 保存为 .key 格式
a=open("private.key", "wb") 
a.write(private)        # 保存私钥
print(private)
a.close()

public = public.save_pkcs1()  # 保存为 .cer 格式
a=open("public.cer", "wb") 
a.write(public)         # 保存公钥
print(public)
a.close()

 加解密案例:

import rsa

data='dsfasfasdfasdfasdfadfadfasfafdadfasdf'                #需要传输的数据
data_encode = data.encode("utf-8")                          #将数据进行utf8编码

with open("private.key", "rb") as x:
    private_key = x.read()
    private_key = rsa.PrivateKey.load_pkcs1(private_key)    # 加载私钥
with open("public.cer", "rb") as x:
    public_cer = x.read()
    public_cer = rsa.PublicKey.load_pkcs1(public_cer)       # 加载公钥

public_date = rsa.encrypt(data_encode, public_cer)          # 使用公钥加密
#print(public_date.encode("utf-8"))
print(public_date)               #加密后的数据

data = rsa.decrypt(public_date, private_key)                # 使用私钥解密
print(data)
print(data.decode('utf-8'))     #解密后的数据

sign = rsa.sign(data_encode, private_key, "SHA-256")        # 使用私钥进行'sha256'签名
verify = rsa.verify(data_encode, sign, public_cer)          # 使用公钥验证签名
print(verify)

输出结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光凉春衫薄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值