gpt4 book ai didi

python - 如何从python中的x509证书中提取RSA公钥

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:39 26 4
gpt4 key购买 nike

我有以下脚本。它连接到 TLS 服务器并提取 X509 证书公钥:

import socket, ssl
import OpenSSL

hostname='www.google.com'
port=443

context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = context.wrap_socket(s, server_hostname=hostname)
ssl_sock.connect((hostname, port))
ssl_sock.close()
print("ssl connection Done")

cert = ssl.get_server_certificate((hostname, port))
# OpenSSL
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
pk = x509.get_pubkey()
print(pk)

问题是返回的公钥。我需要它的十六进制格式。如何解决这个问题?

这是我得到的输出:

<OpenSSL.crypto.PKey object at 0x0000019EBFDF73C8>

最佳答案

我不太确定您要的是什么。粘贴您收到的输出会很有帮助(看起来您忘记了)。这可能不是您想要的,但值得一试(未经测试,您还必须 import binascii):

print(binascii.hexlify(pk.to_cryptography_key().public_key().public_bytes(Encoding.DER, PublicFormat.SubjectPublicKeyInfo))

您应该修改编码和格式以满足您的需要。

编辑:我想我明白你现在想做什么。您可能希望将编码更改为 Encoding.PKCS1

关于python - 如何从python中的x509证书中提取RSA公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41199267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com