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

用python写个rsa公钥解密

zhangsir3年前 (2023-03-28)python257

当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://mianka.xyz/post/152.html

分享给朋友:

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

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

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

python selenium find_element_by_xpath 方法已经被弃用的解决办法

背景:在使用最新3.10.4Python版本时候,用selenium进行xpath定位元素,编译器提示:DeprecationWarning:find_element_by_xpath is deprecated. Please use find_element(by=By.XPATH, value...

python 给电脑设置闹钟

python会自动触发windows桌面通知,提示重要事项,比如说:您已工作两小时,该休息了我们可以设定固定时间提示,比如隔10分钟、1小时等用到的第三方库:win10toast - 用于发送桌面通知的工具from win10toast import ToastNoti...

python 将json数据转成csv文件

从JSON数据转化CSV文件下面的这个Python脚本能够将JSON数据转化到CSV文件的表格当中去,我们输入的是带有.json后缀的文件,输出的是.csv后缀的表格文件,代码如下import json def converter(input_file, output...

python—pymysql的增删改查操作实例展示

Python使用pymysql连接数据库1.导包import pymysql2.连接数据库connection = pymysql.connect(     host='',  # ...

python selenium 使用代理ip

代码如下:from selenium import webdriver chromeOptions = webdriver.ChromeOptions() chromeOptions.add_argument("--proxy-serv...