X.509 证书序列号到十六进制的转换
X.509 certificate serial number to hex conversion
我正在尝试使用 Python 的 OpenSSL 库获取 X.509 证书的序列号。
如果我这样加载我的证书:
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, cert)
然后像这样打印序列号:
print x509.get_serial_number()
看起来像这样:
5.283978953499081e+37
如果我像这样将它转换为十六进制:
'{0:x}'.format(int(5.283978953499081e+37))
它returns这个:
27c092c344a6c2000000000000000000
但是,从命令行使用 OpenSSL 打印证书序列号 returns 这个。
27:c0:92:c3:44:a6:c2:35:29:8f:d9:a2:fb:16:f9:b7
为什么序列号的一半被转换为零?
'%x' % cert.get_serial_number()
'%x' %
格式化字符串如 '{0:x}'.format(cert.get_serial_number())
我正在尝试使用 Python 的 OpenSSL 库获取 X.509 证书的序列号。
如果我这样加载我的证书:
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, cert)
然后像这样打印序列号:
print x509.get_serial_number()
看起来像这样:
5.283978953499081e+37
如果我像这样将它转换为十六进制:
'{0:x}'.format(int(5.283978953499081e+37))
它returns这个:
27c092c344a6c2000000000000000000
但是,从命令行使用 OpenSSL 打印证书序列号 returns 这个。
27:c0:92:c3:44:a6:c2:35:29:8f:d9:a2:fb:16:f9:b7
为什么序列号的一半被转换为零?
'%x' % cert.get_serial_number()
'%x' %
格式化字符串如 '{0:x}'.format(cert.get_serial_number())