首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python RSA消息加密“明文太长”?

Python RSA消息加密“明文太长”?
EN

Stack Overflow用户
提问于 2021-01-23 07:54:53
回答 1查看 2.5K关注 0票数 3

我使用下面的代码来实现一个基本的RSA解决方案来加密和解密数据,但是当我试图加密任何超过87个字符的文本时,我会从文件Plaintext is too long中得到一个错误。

我读到了其他一些问题,RSA不能加密和解密大量数据,但我不确定这是否属实。如果是的话,我还可以使用哪些其他选项来加密任何数量的数据?

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2022-03-27 08:38:14

我把它修正成这样:这是我的代码,我没有编辑你的代码。

代码语言:javascript
复制
    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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65856980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档