python - 为什么我的 5 层 RSA 加密不能正常工作?解密没有返回正确的值
问题描述
当我解密 5 级 RSA 加密消息时,结果不是原始消息,尽管我使用了正确的私钥和正确的私钥
我已经尝试过使用整数和加密数量。如果我只加密一次,它就可以工作
import Crypto
from Crypto.PublicKey import RSA
from Crypto import Random
import ast
publickeys = []
privatekeys = []
for i in range (0,5):
random_generator = Random.new().read
key = RSA.generate(1024, random_generator)
privatekeys.append(key)
publickeys.append(key.publickey())
data = "ack"
for publickey in publickeys:
data = publickey.encrypt(str(data), 32)
for i in range (1,len(privatekeys)+1):
data = privatekeys[-i].decrypt(ast.literal_eval(str(tuple(data))))
没有错误消息,但结果不是我所期望的。而不是得到正确的消息“ack”我得到一个奇怪的字符串。
解决方案
丢弃由;None
返回的值 encrypt
它不能帮助您保留它,并且使解码加密字符串变得非常复杂。
for publickey in publickeys:
data, _ = publickey.encrypt(data, 32)
for privatekey in reversed(privatekeys):
data = privatekey.decrypt(data)
推荐阅读
- python - Web Scraper 功能未抓取新数据
- swift - ScrollView 在自定义基于手势的上滑卡中导致 SwiftUI 出现问题
- python - 多个 URL 抓取 YouTube
- java - 执行wait()后,一个线程如果没有得到其他线程的通知,要等待多长时间?
- python - 在 PyQt5 中一次显示多个问题
- python - 如何在python中将输出作为具有唯一键和多个值的字典返回?
- flutter - 在 Flutter 中缓存来自 WebView 的图像
- python - url open 在某些网站而不是其他网站上返回错误
- segmentation-fault - !$OMP PARALLEL 在 fortran 和分段错误中的问题
- pandas - 通过 putty 在本地服务器上安装 numpy 的问题