在 Python 中使用 RSA 代码中的用户输入

Using user input in RSA code in Python

我是 python 和编程以及所有这些方面的新手,但我有一个使用编程的项目(因为我对此很感兴趣:))

在这个项目中,我和我的搭档希望有人在代码中输入他们的消息(当然不是在 python 文件中),之后,消息会被加密,你会得到私钥和 public 密钥(在 RSA 中)。

我们可以使用他人的作品,只要我们解释为什么或如何工作。我已经找到了一个关于 RSA 的很好的代码,但是它缺少一种用户输入的方式。代码可以在这里找到:http://code.activestate.com/recipes/578797-public-key-encryption-rsa/.

现在我想问一下: 如何将消息(在代码中显示为 msg: )更改为用户可以输入内容的内容?

我已经尝试过使用输入命令,但似乎没有用。

之后,我们希望程序给用户他们的 public 和私钥,可以将其放回程序中以获取原始文本。 我们真的不知道我们怎么能这样写,所以我们认为我们应该问一下!

提前致谢:)

顺便说一句,我们正在使用 python 3.5!

您只需修改这些行(根据您的示例):

def main():
    import doctest
    print(doctest.testmod())

    pubkey, privkey = keygen(2 ** 64)
    msg = u'the quick brown fox jumped over the lazy dog ® ⌀'
    h = encode(msg, pubkey, True)
    p = decode(h, privkey, True)
    print('-' * 20)
    print('message:', msg)
    print('encoded:', b64encode(h).decode())
    print('decoded:', p)
    print('private key:', key_to_str(privkey))
    print('public key:', key_to_str(pubkey))

def main():
    import doctest
    print(doctest.testmod())

    pubkey, privkey = keygen(2 ** 64)
    msg = input('Please type your message: ')
    h = encode(msg, pubkey, True)
    p = decode(h, privkey, True)
    print('-' * 20)
    print('message:', msg)
    print('encoded:', b64encode(h).decode())
    print('decoded:', p)
    print('private key:', key_to_str(privkey))
    print('public key:', key_to_str(pubkey))

请注意,您可能必须在 python 2.x 中使用 raw_input()