Я пытаюсь получить серийный номер для сертификата X.509 с использованием библиотеки OpenSSL Pythons.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))
возвращает это:
27c092c344a6c2000000000000000000
Однако, используя OpenSSL из командной строки для печати сертификатов серийный номер возвращает это.
27:c0:92:c3:44:a6:c2:35:29:8f:d9:a2:fb:16:f9:b7
Почему половина серийного номера преобразуется в нули?
Вы уверены, что сертификат кодируются с ASN1? Какую версию OpenSSL вы используете? –
Попробуйте ''% x '% cert.get_serial_number() '. Должен помочь. – atn
Большое спасибо - Ну, это исправить. Что действительно означает «% x»%? – user1513388