用python写个rsa公钥解密
当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私钥加密的数据。