python 通過*.cer *..pfx 獲取公鑰私鑰


實例代碼如下:

from OpenSSL import crypto

cer_file_path = r"D:\cloudpayDjango\conf\58543195931098400.cer"
pfx_file_path = r"D:\cloudpayDjango\conf\58543195931098400.pfx"


class ReadKey(object):
    """用於讀取密鑰"""

    @staticmethod
    def get_public_key(cer_file_path):
        """
        從cer證書中提取公鑰
        :param cer_file: cer證書存放的路徑
        :return: 公鑰
        """
        cert = crypto.load_certificate(crypto.FILETYPE_ASN1, open(cer_file_path, "rb").read())
        res = crypto.dump_publickey(crypto.FILETYPE_PEM, cert.get_pubkey()).decode("utf-8")
        return res.strip()

    @staticmethod
    def get_private_key(pfx_file_path, password="12345678"):
        """
        從pfx證書中提取私鑰,如果證書已加密,需要輸入密碼
        :param pfx_file_path:pfx證書存放的路徑
        :param password:證書密碼
        :return:私鑰pkey = crypto.load_pkcs12(key, password).get_privatekey()
        """
        pfx = crypto.load_pkcs12(open(pfx_file_path, 'rb').read(), bytes(password, encoding="utf8"))
        res = crypto.dump_privatekey(crypto.FILETYPE_PEM, pfx.get_privatekey())
        return res.strip()


print(ReadKey.get_public_key(cer_file_path))

print(ReadKey.get_private_key(pfx_file_path))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM