谜团:4 个字节应该代表一个日期,但如何
本文关键字:日期 一个 字节 谜团 | 更新日期: 2023-09-27 18:35:10
所以我已经能够从德国官方智能卡中读取一些不安全的值。它适用于数字和字符串,但我无法理解如何解释日期。
我想读取的日期被指定为 4 字节日期,如规范所示:https://i.stack.imgur.com/d4Zzs.jpg
我读取的四个字节是:
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
请帮我解决这个编码谜语
卡中的数据可以被商业软件读取,所以我想我得到的原始数据可以以任何方式使用。
对于感兴趣的人:供应商有一个非常庞大的规格,我已经搜索了很多次(http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:32002R1360:DE:NOT 提供多种语言版本)卡片的结构在第 119 页首次提及
链接的规范说cardIssueDate
属于TimeReal
类型(第 2.20 节)。同一规范将TimeReal
定义为自 1970-01-01 00:00:00 GMT(即 UNIX 时间)以来编码为 ASN.1 整数(第 2.110 节)的秒数。