【问题标题】:Using user input in RSA code in Python在 Python 中使用 RSA 代码中的用户输入
【发布时间】:2015-12-16 16:07:13
【问题描述】:

我是 python 和编程的新手,但我有一个使用编程的项目(因为我对它感兴趣 :))

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

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

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

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

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

已经提前谢谢了:)

顺便说一句,我们使用的是 python 3.5!

【问题讨论】:

  • “我已经尝试过使用输入命令,但似乎没有用。”你尝试了什么,有什么不足?
  • 甚至不看代码,msg = input()

标签: python-3.x input rsa message msg


【解决方案1】:

您可以只修改这些行(来自您的示例):

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()

【讨论】:

  • 谢谢汤姆!这正是我想要的!但我还有一个问题:我怎样才能让人们多次使用它?我可以在输入命令后面加上 range({number of times people can do this}) 吗?还是我需要把它放在其他地方/使用完全不同的东西?
猜你喜欢
  • 2014-11-18
  • 2017-07-30
  • 2021-03-14
  • 2021-06-30
  • 2017-02-18
  • 1970-01-01
  • 1970-01-01
  • 2011-09-11
  • 1970-01-01
相关资源
最近更新 更多