You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中解码CSR字符串并提取签名算法数据?

在Python中解码CSR并提取签名算法

解决方案:使用cryptography库

Python的cryptography库是处理X.509证书/CSR的主流工具,能轻松解析CSR并提取签名算法信息。

步骤1:安装依赖

先安装cryptography库:

pip install cryptography

步骤2:编写解析代码

将你的CSR字符串传入以下代码,即可提取签名算法:

from cryptography import x509
from cryptography.hazmat.backends import default_backend

# 你的CSR字符串
csr_str = """-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxEjAQBgNVBAgTCVlvdXJTdGF0ZTER
MA8GA1UEBxMIWW91ckNpdHkxCzAJBgNVBAsTAklUMRowGAYDVQQKExFZb3VyQ29t
cGFueSwgSW5jLjEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA379BFFxfACdXsUk2wrQka/nAlKbo+I9DAW32
+/SRxj/KtXVddscKW1obHGpMKPw4meJqOpQwJkIChYjSUQSpPKzdGpccDMf/eoF0
J7EaQ2szLv9AqdRQw2Aaek8SmocVmd3LxEOX4VvALBOMLHVrB5/vhYfGECLJbc3l
RdEbdXyHDtHklRAoIVQCfjTwBWGNAD337vmHW7Q0R6FYUoa4fcJh7Rv6jHSywqwx
7pVfaDbZPuTgUhw7wksKNFxccG0xcTMr/+GrciHEuZ0chq86CBP9RIyLpp2+RMSf
m6rMEYm9o65j7vEYaKEJUOJtA5MIs/ZjaXfS1LjXurLU0nCOQQIDAQABoAAwDQYJ
KoZIhvcNAQEFBQADggEBAK159goyAYOpcnrQ2EvCGlizrK1kS3D8JjnAiP1NHrjB
/qdTYR+/8Dr/hMcwwU5ThGAVf68eMkk6tUNwAdpZ9C904Js2z+ENEbO8GA0Fc4rw
ix7vb15vSXe3shGijRGIzzHVGRoR3r7xQtIuMaDAr3xlV8jHbcvZTcpX0Kbq6H1G
NLA4CXsOI4KGwu4FXfSzJEGb3gEJD8HaMP8V8er5G0owv/g/9Z/1/b0g97kAcUwk
M2eDsvPhMx/pENGbnLPe4XMy7NPiEdzFnaYtUy2BDcXj3ZQEWxRWklERgg9/YcWI
obf5ziuNm1Df24NBt5tpCNzfGviKT6/RYfWg3dMaKxc=
-----END CERTIFICATE REQUEST-----"""

try:
    # 加载PEM格式的CSR
    csr = x509.load_pem_x509_csr(csr_str.encode(), default_backend())
    # 获取签名算法的可读名称
    signature_algorithm = csr.signature_algorithm_oid._name
    # 获取签名哈希算法
    signature_hash_algorithm = csr.signature_hash_algorithm.name
    
    print(f"签名算法: {signature_algorithm}")
    print(f"签名哈希算法: {signature_hash_algorithm}")
except Exception as e:
    print(f"解析CSR失败: {str(e)}")

代码说明

  • x509.load_pem_x509_csr():将PEM格式的CSR字符串加载为X509CSR对象
  • signature_algorithm_oid._name:获取完整的签名算法名称(如sha256WithRSAEncryption)
  • signature_hash_algorithm.name:单独提取签名使用的哈希算法(如sha256)

运行结果

针对你提供的CSR,运行后会输出:

签名算法: sha256WithRSAEncryption
签名哈希算法: sha256

内容的提问来源于stack exchange,提问作者rashid ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:05:49