如何用Python实现与Java代码一致的X509Certificate生成功能
问题解答
完全可以实现,Python中通常使用cryptography库完成该操作,该库是Python生态中主流的密码学操作工具,功能与Java的证书操作类对应。
前置依赖安装
执行以下命令安装依赖库:
pip install cryptography
功能实现代码
你给出的Java代码的作用是从byte[]类型的字节流中加载X.509格式的证书,转换为X509Certificate实例,Python对应实现如下:
from cryptography import x509 from cryptography.hazmat.backends import default_backend # b_arr 对应Java代码中的bArr,为Python的bytes类型 b_arr: bytes = b"你的证书字节数据" # 加载DER格式的X509证书,得到的cert对象等价于Java中的X509Certificate实例 cert = x509.load_der_x509_certificate(b_arr, default_backend())
常见后续操作示例
得到cert对象后,可以直接调用方法获取证书的各类属性,常用操作如下:
- 获取证书版本:
cert.version - 获取证书序列号:
cert.serial_number - 获取证书生效时间:
cert.not_valid_before - 获取证书过期时间:
cert.not_valid_after - 获取证书颁发者信息:
cert.issuer - 获取证书持有者信息:
cert.subject - 获取证书公钥:
cert.public_key()
如果你拿到的字节数据是PEM格式的证书(包含
-----BEGIN CERTIFICATE-----标记头),只需要把加载方法替换为x509.load_pem_x509_certificate(b_arr, default_backend())即可。
内容的提问来源于stack exchange,提问作者Ethel Stample
相关产品推荐
相关产品推荐

