gpt4 book ai didi

Python RSA 消息加密 "Plaintext is too long"?

转载 作者:行者123 更新时间:2023-12-05 06:52:59 24 4
gpt4 key购买 nike

我正在使用以下代码来实现用于加密和解密数据的基本 RSA 解决方案,但是当我尝试加密任何长度超过 87 个字符的文本时,我收到一条错误消息,提示 Plaintext is too long 来自文件 Crypto/Cipher/PKCS1_OAEP.py

我在其他问题上读到 RSA 无法加密和解密大量数据,但我不确定这是不是真的。如果是,我可以使用哪些其他选项来加密任意数量的数据?

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)

最佳答案

我是这样修复的:[这是我的代码,我没有编辑你的]

    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)

关于Python RSA 消息加密 "Plaintext is too long"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65856980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com