13

我需要使用 WinSCard 读取 MiFare 卡的序列号。我能够从 MiFare 卡中读取 7B UID。

困惑是我不知道MiFare卡的UID和序列号是否相同?!

我已经用谷歌搜索了这个问题,但只能获得部分成功。我也在stackoverflow上发现了一个问题,但没有帮助。

我在网上找到了一份NXP的文档,上面写着UID和序列号不同。(在第 3 页,第 5 行)

OmniKey 有一个应用程序可以读取卡的序列号,它也只返回 UID。

NXP 文档说UID <> Serial Number和其他标准 OmniKey 应用程序返回UID 作为 Serial Number

我已经开始在这个问题上扯掉我的头发了。如果有人可以提供帮助,我将不胜感激。

4

3 回答 3

17

每张智能卡都包含一个集成芯片,该芯片在制造过程中刻录了一个唯一的永久识别 (UID) 编号。此 UID 通常称为卡序列号 (CSN)。卡序列号未加密,任何符合 ISO 标准的读卡器都可以读取卡序列号。

编辑1:

Mifare Card 序列号是 ISO 14443-3A 中定义的唯一标识符。标准中定义了 3 种类型的 UID——单(4 字节)、双(7 字节)和三(10 字节)。只有在 Mifare 卡的第一个版本中,UID 是 4 个字节,但现在已经迁移到 7 个字节。

编辑2: 它可能对你有帮助......

What is the difference between a 4 byte UID and a 4 byte ID?

4 字节的 UID 是卡制造商使用受控数据库分配的标识符。该数据库确保单个标识符不会被使用两次。相反,一个 4 字节的 ID 是一个标识符,它可以在产品的生产时间内分配给一个以上的非接触式芯片,从而可以将一个以上具有相同标识的卡部署到一个特定的非接触式系统中。

于 2013-07-12T06:42:06.410 回答
5

这种情况下的区别在于“序列号”意味着这些数字是一个系列,因此是按顺序分配的。

MIFARE 卡具有唯一标识号(或简称为 UID),由不一定连续的内部规则生成。这意味着,如果您看到 UID 为 01020304050607 的卡,并不意味着到目前为止至少生产了那么多卡。

如果您曾经看到有人提到卡序列号,他们实际上是指 UID。

唯一的混淆可能来自于 MIFARE 卡可以配置为在激活期间返回随机 ID。如果是这种情况,您每次激活卡时都会获得不同的“UID”。在这种情况下,您需要读取块 0 中包含的数据(为此您需要知道扇区 0 的密钥)以获取卡的真实 UID。

于 2015-02-03T21:55:40.297 回答
0

对于 DesFire 卡:

  1. UID 类似于以太网 MAC 地址。它是由芯片制造商从数据库中分配的。为卡创建应用程序的每个人都可以访问 UID。
  2. 卡序列号特定于加载到卡上的应用程序。它只能由该应用程序通过加密密钥访问。如果卡上加载了多个应用程序(不太可能但可能),则每个应用程序都可能具有不同的 CSN。
于 2019-04-09T10:04:13.063 回答