Тайна: 4 байта должны представлять дату, но как?

StackOverflow https://stackoverflow.com//questions/10706275

  •  13-12-2019
  •  | 
  •  

Вопрос

Так что я смог прочитать некоторые необеспеченные значения с официальной немецкой смарт-карты. Он работает нормально для чисел и строк, но я не могу обернуть голову, как интерпретировать даты.

Дата, которую я хочу прочитать, указан в 4 байтовой дате, как видно в SPECT: http://imgur.com/ 3JU8K

Четыре байта, которые я читал:

0x4f 0x41 0x8d 0x00 (hex)
0100 1111 0100 0001 1000 1101 0000 0000 (binary)
.

и должен представить эту дату: 20.02.2012 Бинарный:

20 - 0001 0100
02 - 0000 0010
2012 - 0111 1101 1100
.

Еще один:

0x58 0xAA 0x31 0x7f (hex)
0101 1000 1010 1010 0011 0001 0111 1111 (binary)
.

должен представлять: 19.02.2017

19 - 0001 0011
02 - 0010
2017 - 0111 1110 0001
.

Пожалуйста, помогите мне решить эту кодировку ringdle


Данные с карты могут быть прочитаны коммерческим программным обеспечением, поэтому я думаю, что необработанные данные, которые я получаю только для использования.

для заинтересованного: Поставщик имеет очень огромную спецификацию, которую я искал много раз (http://eur-lex.europa.eu/lexuriserv/lexuriserv.doyuri=celex:32002r1360:de:not, доступных на нескольких языках) Структура карты сначала упоминается на стр. 119

Это было полезно?

Решение

Связанная спецификация говорит, что cardIssueDate имеет тип GeneracodicCode типа (раздел 2.20.).Та же самая спецификация определяет TimeReal как количество секунд с 1970-01-01 00:00:00 GMT (т.е. UnixВремя ) кодировано как asn.1 integer (раздел 2.110.). .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top