python使用RSA生成公钥以及加密解密方法

部署运行你感兴趣的模型镜像
RSA加密
生成公钥和私钥代码
from Crypto.PublicKey import RSA
​
rsa_obj = RSA.generate(1024)
​
# print(rsa_obj.exportKey().decode())  # 导出私钥
# print(rsa_obj.public_key().exportKey().decode())  # 导出公钥
​
# 生成秘钥
with open("rsa.public.pem", mode="wb") as f:
    f.write(rsa_obj.publickey().exportKey())
​
with open("rsa.private.pem", mode="wb") as f:
    f.write(rsa_obj.exportKey())

在生成公钥和私钥后,才可以进行rsa的加密和解密

使用公钥进行加密

1.获取公钥字符串

2.基于公钥字符串构建公钥对象

3.基于公钥对象生成rsa算法对象

总结步骤,withopen打开公钥,使用read获得密钥,通过RSA.importKey来构建公钥对象

使用RKCS1_v1_5.new去生成rsa的算法对象,使用encrypt对数据进行加密,最后使用base64对内容进行编码,转换成字符串,base64.b64encode

需要导入的包
import base64
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
核心代码
import base64
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
data = "alex is a stupid donkey!"
with open("rsa.public.pem") as f:
    # 1. 获取公钥字符串
    public_key_str = f.read()
    # 2. 基于公钥字符串构建公钥对象
    public_key_obj = RSA.importKey(public_key_str)
    # 3. 基于公钥对象生成rsa算法对象
    rsa = PKCS1_v1_5.new(public_key_obj)
​
    # 数据加密
    encrypt_data = rsa.encrypt(data.encode()) #注意这个地方数据传入
    print("encrypt_data:::", encrypt_data)
    # base64编码
    base64_encrypt_data = base64.b64encode(encrypt_data).decode()
    print(base64_encrypt_data)
RSA的解密
import base64
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5

步骤:导入的包是一样的,首先是先对base64进行解码,然后显示生成私钥字符串,在基于私钥字符串构建私钥对象,最后基于私钥对象构建rsa对象

前面的基本上都是一样,重要的内容就是一个是encrypt,一个是decrypt

import base64
​
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
base64_encrypt_data = "B0bu11Wq6KKDiU8mdUF2i+cqzHcp/nlD64/P35GRGB2lm77sG1AD05DrArPWU38sxCmcKf/3TvM7C3CPfKHBXYoJwAbyIc/JT3Kmx7fHzpvYGi076aQFfHeumTclpRZoA/7milDFm+ClsQLSwLk2zOU2mskohT92CHNciU0A+xw="
​
# 一、base64解码
encrypt_data = base64.b64decode(base64_encrypt_data)
# print(encrypt_data)
​
# 二、数据解密
with open("rsa.private.pem") as f:
    # (1) 生成私钥字符串
    private_key_str = f.read()
    # (2) 基于私钥字符串构建私钥对象
    private_key_obj = RSA.importKey(private_key_str)
    # (3) 基于私钥对象构建rsa对象
    rsa = PKCS1_v1_5.new(private_key_obj)
    # 数据解密
    data = rsa.decrypt(encrypt_data, None)
    print("data:::", data.decode())

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Volcanoforever

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

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

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

打赏作者

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

抵扣说明:

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

余额充值