当前位置:首页 > python > 正文内容

用python写个rsa公钥解密

zhangsir3年前 (2023-03-28)python263

当RSA加密时,数据被加密为一个数字,这个数字只能由私钥持有者解密。因此,如果您想使用RSA加密进行通信,您需要生成一对公钥和私钥,发送方使用接收方的公钥进行加密,接收方使用自己的私钥进行解密。


以下是一个使用Python编写的RSA公钥解密程序,需要使用PyCryptodome库。该程序需要一个RSA公钥文件,该文件必须是PEM格式。请注意,这个程序只能解密使用RSA公钥加密的数据,不能解密使用RSA私钥加密的数据。


from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
import base64
# 读取公钥
with open('public.pem', 'rb') as f:
    key = RSA.import_key(f.read())
# 创建RSA解密器
cipher = PKCS1_OAEP.new(key)
# 加密的数据
encrypted_data = b'VRSZz8hM6mdxUj+KUwMHbmTMBTvaAKKhJ9KfOmi1DMLhWZsGJl6UkK6UwlywT1Tm41fTyqzBAV7/mObxN87P4+zVRM+kfR1C26XCNlX5sj5rPHW8zR1RHnmygDrxGOkNVwI3q81/jkKj9XhCgopzJFZ8KvE='
# 解码加密的数据
encrypted_data = base64.b64decode(encrypted_data)
# 解密数据
decrypted_data = cipher.decrypt(encrypted_data)
# 打印解密后的数据
print(decrypted_data.decode())

在上面的程序中,我们首先使用RSA.import_key()函数读取PEM格式的公钥文件,然后使用PKCS1_OAEP.new()函数创建一个RSA解密器。我们将加密数据encrypted_data作为参数传递给解密器的decrypt()函数,解密器使用公钥对加密数据进行解密,并返回解密后的数据。


最后,我们使用base64.b64decode()函数对加密数据进行解码,以便正确地传递给解密器进行解密。解密后的数据可以使用decode()函数将其转换为字符串格式,并打印出来。


请注意,该程序只能解密使用RSA公钥加密的数据,不能解密使用RSA私钥加密的数据。


zhangsir版权k3防采集https://mianka.xyz

扫描二维码推送至手机访问。

版权声明:本文由zhangsir or zhangmaam发布,如需转载请注明出处。

本文链接:https://www.mianka.xyz/post/152.html

分享给朋友:

“用python写个rsa公钥解密” 的相关文章

django框架的安装和创建第一个项目

安装Djangopip install -i https://pypi.douban.com/simple django创建项目django-admin startproject 项目名称例如 django-admin startproje...

python之seleniumwire获取network(网络)信息

python之seleniumwire获取请求头参数import time from seleniumwire import webdriver # 创建Chrome驱动程序的新实例 driver = webdriver...

Python三方库ddddocr实现验证码识别

Python三方库ddddocr实现验证码识别环境要求python >= 3.8安装三方库pip install ddddocr -i https://pypi.tuna.tsinghua.edu.cn/simple参数说明:参数名参数类型默认值说明us...

解决Django的request.POST获取不到请求参数的问题

这个是Django自身的问题:只要在请求头的添加"content-type":'application/x-www-form-urlencoded'就行。...

python 爬虫 报错:UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0x8b in position”解决方案

发现报错“UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1:invalid start byte”,方法一:根据报错提示,错误原因有一条是这样的:“'Accept-Encodi...

python 实现彩色图转素描图

python可以把彩色图片转化为铅笔素描草图,对人像、景色都有很好的效果。而且只需几行代码就可以一键生成,适合批量操作,非常的快捷。需要的第三方库:Opencv - 计算机视觉工具,可以实现多元化的图像视频处理,有Python接口""" Photo ...