从 Python 中的字符串解析 RSA 密钥对

Parse RSA key pair from string in Python

我正在尝试 generate/read 来自 publicKey 和 privateKey 的 RSA 密钥对作为字符串。

像这样:

priK = "-----BEGIN RSA PRIVATE KEY-----MIIBOQIBAAJAVJhUS0gLqXLOmVv2xG23oFPwim9+rVxGhLUXqKShQCvB3iRMOHn7/GNJumpwmnglcsNXuqAhN0OxqKGGJdtYdwIDAQABAkBP0VrXnSbDvvuIX+k59Xvo3sp7FDAmSoaO+H9WM9+ht5H/f/geIrSEXSIkFLnzniMwtOJ422GmkDkL1F67HuDhAiEAlNauDiq3RqoXufbauyPEOG9fMS2pvB+auT2XCHJhhKsCIQCRgIo7WIRZYnNpNRWaoppUQK3g+aM8sdeBYpbs2nwDZQIgZXIxrmxFAUAb7d+oVFdbfc/DRSTHhPbRoaKuF87GUwMCIFmzaATsLjO42TPMETSS+BfnBAtFe5hIf3Z5pFgC3h9tAiEAgYjug92fmVvE+CcRSg6at7meSEbK/Kxg7Ar4mlkXMlI=-----END RSA PRIVATE KEY-----"

pubK = "-----BEGIN PUBLIC KEY-----MFswDQYJKoZIhvcNAQEBBQADSgAwRwJAVJhUS0gLqXLOmVv2xG23oFPwim9+rVxGhLUXqKShQCvB3iRMOHn7/GNJumpwmnglcsNXuqAhN0OxqKGGJdtYdwIDAQAB-----END PUBLIC KEY-----"

keyPair = RSA.importKey(priK + pubK)

我得到的错误是:

in importKey
    if lines[1].startswith(b('Proc-Type:4,ENCRYPTED')):

我什至不知道这是否可能。我真的没有找到关于那个的信息。

RSA.importKey(key) 导入一个密钥。它不能导入连接的键。

如果导入私钥,则可以从中提取 public 密钥,因为常见的 PKCS#1 和 PKCS#8 格式具有创建 public 密钥所需的所有信息。因此,您甚至不需要将 public 键连接到它。

使用:

privateKey = RSA.importKey(priK)
publicKey = privateKey.publickey()