簡體   English   中英

使用python3將.key格式的私鑰轉換為.pem格式

[英]Convert .key formatted private key into .pem format with python3

我正在嘗試使用 python3 將 .key 格式的私鑰轉換為 .pem 格式的密鑰。 在使用 python3 之前,我可以通過簡單地運行 openssl 命令將私鑰轉換為 .pem 格式:

openssl rsa -in <private_key_file> -outform PEM -out <new_file>

我想知道人們如何使用 python3 將其私鑰轉換為 .pem 或其他格式。 到目前為止,我已經嘗試運行subprocess.run()命令來從 python 執行 openssl 命令。 很高興知道是否有 python 轉換為 .pem 格式的方式。

我還嘗試使用 pycryptodrome 庫https://pycryptodome.readthedocs.io/en/latest/index.html按照這個線程pyOpenSSL 創建一個 pem 文件,該文件以 pem 格式創建但沒有成功。

 def convert_key_to_pem_format(key_file):
     print("Converting to pem/rsa format")
     pv_key_string = key_file.exportKey()
     with open ("private.pem", "w") as prv_file:
     print("{}".format(pv_key_string.decode()), file=prv_file)

這是我的代碼。 任何幫助,將不勝感激。

在 Cryptodome 庫中,您可以使用import_key方法,該方法支持 RSA私鑰的以下格式:

  • PKCS#1 RSAPrivateKey DER SEQUENCE(二進制或 PEM 編碼)
  • PKCS#8_ PrivateKeyInfoEncryptedPrivateKeyInfo DER SEQUENCE(二進制或 PEM 編碼)

以下是您可以如何使用它:

from Cryptodome.PublicKey import RSA
key = RSA.import_key(open('private.key', "rb").read(), passphrase="(passphrase in case you have one)")

pv_key_string = key.exportKey()
with open ("private.pem", "w") as prv_file:
    print("{}".format(pv_key_string.decode()), file=prv_file)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM