Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 谜团:4个字节应该代表一个日期,但如何表示呢?_C#_Smartcard_Winscard - Fatal编程技术网

C# 谜团:4个字节应该代表一个日期,但如何表示呢?

C# 谜团:4个字节应该代表一个日期,但如何表示呢?,c#,smartcard,winscard,C#,Smartcard,Winscard,因此,我能够从德国官方智能卡中读取一些不安全的值。 它适用于数字和字符串,但我不知道如何解释日期 我要读取的日期指定为4字节的日期,如规范中所示: 我读取的四个字节是: 0x4f 0x41 0x8d 0x00 (hex) 0100 1111 0100 0001 1000 1101 0000 0000 (binary) 并应代表该日期:2012年2月20日 二进制: 另一个: 0x58 0xAA 0x31 0x7f (hex) 0101 1000 1010 1010 0011 0001 0111

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

我要读取的日期指定为4字节的日期,如规范中所示:

我读取的四个字节是:

0x4f 0x41 0x8d 0x00 (hex)
0100 1111 0100 0001 1000 1101 0000 0000 (binary)
并应代表该日期:2012年2月20日 二进制:

另一个:

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:NOT 提供多种语言版本)
卡的结构首先在第119页中提到,链接的规范规定,
cardIssueDate
TimeReal
类型(第2.20节)。同一规范将
TimeReal
定义为自1970-01-01 00:00:00 GMT(即)编码为整数(第2.110节)以来的秒数。

:(你是对的。我甚至想过这个问题,但在验证它时犯了一个错误。非常感谢!在左边使用Big-Endian/MSB,不要忘了检查你是否使用Big-Endian,而不管平台是什么。
19 - 0001 0011
02 - 0010
2017 - 0111 1110 0001