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

用python写个rsa公钥解密

zhangsir3年前 (2023-03-28)python223

当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版权g4防采集https://mianka.xyz

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

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

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

分享给朋友:

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

Selenium添加Cookie来实现自动登录

Selenium添加Cookie来实现自动登录第一步获取你登录的cookie,以csdn为例from selenium import webdriver driver = webdriver.Chrome() driver.get('...

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 将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上传文件的程序,非input标签的上传

非input标签的上传通常是通过模拟点击“上传”按钮打开系统的文件选择框,然后在文件选择框中选择文件并点击“确定”按钮实现的。在Selenium中,我们可以使用AutoIT或pywinauto等工具来模拟操作系统的窗口,实现非input标签的上传。下面是一个使用pywinauto模块实现非input...

python pywinauto Application怎么用

使用pywinauto库中的Application类可以实现自动化控制Windows应用程序的功能。以下是使用pywinauto的Application类的基本步骤:导入必要的模块:在Python脚本中,首先需要导入pywinauto库中的Application类。例如:from pywi...