'Python RSA message encryption "Plaintext is too long"?

I'm using the following code to implement a basic RSA solution for encrypting and decrypting data, but when I try to encrypt any text that is longer than 87 characters I get an error saying Plaintext is too long from the file Crypto/Cipher/PKCS1_OAEP.py.

I read on other questions that RSA cannot encrypt and decrypt large sets of data but I'm not sure if that's true. If it is, what other options can I use to encrypt any amount of data?

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto.Signature import PKCS1_v1_5
from Crypto.Hash import SHA512, SHA384, SHA256, SHA, MD5
from Crypto import Random
from base64 import b64encode, b64decode
hash = "SHA-256"

def newkeys(keysize):
   random_generator = Random.new().read
   key = RSA.generate(keysize, random_generator)
   private, public = key, key.publickey()
   return public, private

def encrypt(message, pub_key):
   cipher = PKCS1_OAEP.new(pub_key)
   return cipher.encrypt(message)


Solution 1:[1]

i fixed it like this : [This is on my code i havent edited yours]

    with open(file, 'rb') as f: 
        fernet_key = f.read() 
        if len(fernet_key) > 80 : 
            fernet_key1 = ''
            tostart = 0
            toadd = 0
            flag_tostart = 0
            while True: 
                if fernet_key1 == fernet_key: 
                    break
                else:
                    flag_tostart = flag_tostart +1
                    if flag_tostart == '2'or flag_tostart > 2 or flag_tostart == 2: 
                        tostart = tostart + 80


                    toadd = toadd +80
                    
                    if tostart == 0 : 
                        tostart = 0 
                    
                    else:   
                        tostart = tostart + 80

                    fernet_key[tostart:toadd] += fernet_key1

                    public_crypter = PKCS1_OAEP.new(public_key)

                    with open(file, 'wb') as f: 
                        enc_fernet_key = 
                        public_crypter.encrypt(fernet_key1)

                        f.write(enc_fernet_key)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1