Using pycrypto, how to import a RSA public key and use it to encrypt a string?

后端 未结 7 1124
孤街浪徒
孤街浪徒 2020-12-28 10:06

The RSA public key:

pubkey = \'MIGfMA0GCSqGSIb3DQEBA3UAA4GNADCBiQKBgQC35eMaYoJXEoJt5HxarHkzDBEMU3qIWE0HSQ77CwP/8UbX07W2XKwngUyY4k6Hl2M/n9TOZMZsiBzer/fqV+QNPN1m9M94eU

7条回答
  •  忘掉有多难
    2020-12-28 10:49

    The method I ended up using based on a few answers here:

    from Crypto.PublicKey import RSA
    from Crypto.Cipher import PKCS1_v1_5 as Cipher_PKCS1_v1_5
    
    def encrypt_data(data):
        with open("/path/to/public.pem", "rb") as k:
            key = RSA.importKey(k.read())
    
        cipher = Cipher_PKCS1_v1_5.new(key)
        return cipher.encrypt(data.encode())
    
    
    def decrypt_data(data):
        with open("path/to/private.pem", "rb") as k:
            key = RSA.importKey(k.read())
    
        decipher = Cipher_PKCS1_v1_5.new(key)
        return decipher.decrypt(data, None).decode()
    
    
    message = "hello world!"
    encrypted = encrypt_data(message)
    decrypted = decrypt_data(message)
    

提交回复
热议问题