python fsb795 ведущий ноль серийного номера
Всем привет. Работаю с файлами квалифицированных сертификатов, одна из задач - получить серийный номер. Имеются сертификаты которые начинаются с 0
Когда определяю серийный номер с помощью python то теряю лидирующий ноль.
cert = fsb795.Certificate(filename)
if (cert.pyver == ''):
exit(-1)
print( '{0:x}'.format(cert.serialNumber()) )
вывод cert.serialNumber() : 244779530423518144939779859097793331
Вывод программы: 1d76da04fd9aea00000033603e80002
Должен быть : 01d76da04fd9aea00000033603e80002
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Переведем байты в число:
s=int.from_bytes(bytes.fromhex('01d76da04fd9aea00000033603e80002'),'big')
s.bit_length()
получается 2447795304235181449397798590977933314 длинной 121 бит, округлим в байтах:
import math
math.ceil(s.bit_length()/8)
16 байт. И переводим обратно в HEX
s.to_bytes(math.ceil(s.bit_length()/8),'big').hex()
'01d76da04fd9aea00000033603e80002'
