首页 > 解决方案 > 为什么我的 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”我得到一个奇怪的字符串。

标签: pythonrsaanonymize

解决方案


丢弃由;None返回的值 encrypt它不能帮助您保留它,并且使解码加密字符串变得非常复杂。

for publickey in publickeys:
    data, _ = publickey.encrypt(data, 32)

for privatekey in reversed(privatekeys):
    data = privatekey.decrypt(data)

推荐阅读