【问题标题】:Using RSA in Python在 Python 中使用 RSA
【发布时间】:2010-08-17 16:58:39
【问题描述】:

我正在使用 RSA 在 Python 中加密/解密我的会话密钥。我正在使用 Pycrypto 库。生成密钥对后,我想从生成的密钥中提取私钥和公钥,并将它们存储在不同的文件中。我怎样才能做到这一点?我可以看到 has Private 方法,它可以告诉生成的密钥对具有私有组件,但无法找到如何从生成的密钥对中提取两个密钥。任何建议都会有很大帮助。

【问题讨论】:

    标签: python rsa pycrypto


    【解决方案1】:

    如果你想从键中获取不同的部分,有key 属性:

    >>> from Crypto.PublicKey import RSA
    >>> RSAkey = RSA.generate(1024)
    >>> getattr(RSAkey.key, 'n')
    13773...L
    >>> getattr(RSAkey.key, 'p')
    11731...L
    >>> getattr(RSAkey.key, 'q')
    11740...L
    

    可用的组件有'n'、'e'、'd'、'p'、'q'、'u'

    如果你只是想把它保存在 PEM 中,你应该使用exportKey() 方法(从 2.2 开始可用)

    >>> private = RSA.generate(1024)
    >>> public  = private.publickey()
    >>> private.exportKey()
    '-----BEGIN RSA PRIVATE KEY-----\nMIICXgIBAAKBgQDo1M0P3nryaF8ZITv8vCFVnjUJ1mnIsrqXZRTzjin69xepr3cz\nKicG3EYSUqMODQAsvMj0tGMo+ElGOVOkPFLVVBHd8izgA/E1RqUzbUDMj4WnhlhA\nQq7tNaViOXNaZ7krJZHabZKxfYvLAQtm4tr+m5NtXPBaWvjwhd5M9xvktwIDAQAB\nAoGBANVsS1Rikbymo5V7e2teYAgFb4THAEyyWIvyYlQnWp/r48rtRoyl9QQ64hhl\nm4WDsUdQ/bwhpkul3DT804jWqu2V71p68rQP7h5D6ldCBUr5nQc9o/uEyy4YCgxD\n/ZxNiY5Bb/lMP9nhb2NbG4184mhUMHu+06wWX6RrXQtMtjYhAkEA8DioToMZIy3s\nhPohri3CAgByV2Jxf7JPqVZ93JjlSlBz+aybSv1mOJUPRFpkMk2xiPmHtEn16hYr\nesVK11tcjwJBAPgf4QYAw9dV+DuVqdwz+kmTjnlkr0Q7fjaGfl60DWmuLWmxiRhe\nMYQ2+8iyPDmxcPFTGSpGqyvyJDjQ/wOlWVkCQQCRIuotZW/OnXSFc0reHa9V3kc3\nHLdOW8FdonAw0//Uwn8PnoXE7QzRqt2qgqJ+8goNpBWli/oUEIj8iC8LpptpAkBV\nFFlMfaaph8j+ZWtBHnGMGRSZe3S9qMi2WZerUYHn4tmfjEi+Gk5QT6o2Pyd3gOiB\nV0Uhwemfv/+7m65VybTBAkEA5H59kG+B9HHD5hJtksAtMh8dxk/MI8G0csduU0vu\n7K5ejL522XsHurVrWdqnk6KvjlRXqB4FsMWLE6RBgBNV0A==\n-----END RSA PRIVATE KEY-----'
    >>> public.exportKey()
    '-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDo1M0P3nryaF8ZITv8vCFVnjUJ\n1mnIsrqXZRTzjin69xepr3czKicG3EYSUqMODQAsvMj0tGMo+ElGOVOkPFLVVBHd\n8izgA/E1RqUzbUDMj4WnhlhAQq7tNaViOXNaZ7krJZHabZKxfYvLAQtm4tr+m5Nt\nXPBaWvjwhd5M9xvktwIDAQAB\n-----END PUBLIC KEY-----'
    

    【讨论】:

      猜你喜欢
      • 2011-09-12
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多