c# - 谜团: 4 Bytes should represent a Date,可是怎么回事?

标签 c# smartcard winscard

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

我想读取的日期被指定为 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)

应该代表: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页首次提到卡片的结构

最佳答案

链接的规范说明 cardIssueDateTimeReal 类型(第 2.20 节)。相同的规范将 TimeReal 定义为自格林威治标准时间 1970-01-01 00:00:00 以来的秒数(即 UNIX time )编码为 ASN.1整数(第 2.110 节)。

关于c# - 谜团: 4 Bytes should represent a Date,可是怎么回事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10706275/

相关文章:

c# - WPF:如何将大量大图像快速加载到包装面板中?

c#无参数扩展方法

c# - 模拟异步任务

C#智能卡编程

windows - 使用 WinSCard 获取 PCSC 读卡器序列号

c# - 如何在wpf应用程序中设置所有窗口的背景图片

c# - 如何将接口(interface)作为参数传递给 C# 方法

c++ - 由于 WINAPI_PARTITION_DESKTOP block ,无法在 UWP 应用程序中使用 winscard.h

java - WinScard 智能卡 dll 32 位 64 位兼容性

c# - SCardEstablishContext 内存泄漏