man*_*uri 5 python cryptography certificate x509certificate
我必须使用 Python2 中的加密库从 .pem 证书中提取公钥,但只能获取公钥对象。
在密码学文档中,我找到了这段代码
from cryptography.hazmat.primitives.asymmetric import rsa
pem_cert=open("/home/lab14/aes/fd.pem","rb").read()
cert = x509.load_pem_x509_certificate(pem_cert, default_backend())
public_key = cert.public_key()
print(public_key)
Run Code Online (Sandbox Code Playgroud)
但是当运行这个时,我得到公钥对象,但不是十六进制格式的实际密钥。
这是我得到的输出
<cryptography.hazmat.backends.openssl.rsa._RSAPublicKey object at 0x7f49e214d6d8>
Run Code Online (Sandbox Code Playgroud)
任何帮助都会有帮助和赞赏。谢谢
您有一个公钥对象,需要对其进行编码以检索密钥的字节表示形式。然后可以使用任何十六进制编码器对这些字节进行编码 - 如果这是需要的。
因此只需调用即可public_bytes(encoding, format)检索字节。编码可以是SubjectPublicKeyInfo,它包含有关公钥类型(它是通用密钥)的信息,或者PKCS1,它基本上包含 RSA 公钥的最小编码。请注意,您可能首先必须建立密钥类型才能使用,PKCS1因为这仅描述了 RSA 密钥。
您还可以选择 DER 和 PEM 格式。DER 仅返回 ASN.1 定义的 RSA 公钥结构的字节表示形式。PEM Base 64 对该结构进行编码,并添加页眉和页脚行以创建密钥的文本表示。
| 归档时间: |
|
| 查看次数: |
4976 次 |
| 最近记录: |