因此,我已经能够从德国官方智能卡中读取一些不安全的值。它适用于数字和字符串,但我无法理解如何解释日期。

我想要读取的日期被指定为 4 字节日期,如规范中所示: 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)

应代表:2017年2月19日

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

请帮我解决这个编码之谜


卡上的数据可以通过商业软件读取,所以我想我得到的原始数据可以以任何方式使用。

对于有兴趣的人:供应商的规格非常庞大,我已经搜索过很多次(http://eur-lex.europa.eu/lexuriserv/lexuriserv.do?uri=celex:32002r1360:de:de:de:de:de:de:de:de:不用多种语言可用)该卡的首先在第119页上提到

有帮助吗?

解决方案

链接的规范说 cardIssueDate 属于类型 TimeReal (第 2.20 节)。相同规范定义 TimeReal 作为自 1970-01-01 00:00:00 GMT 以来的秒数(即 UNIX时间)编码为 ASN.1 整数(第 2.110 节)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top