我需要使用WinSCard读取MiFare卡的序列号。我可以从MiFare卡上读取7B UID。
令人困惑的是,我不知道UID和MiFare卡的序列号是否相同?!!
我搜索了这个问题,但只能取得部分成功。我在stackoverflow上发现了一个question,但它没有帮助。
我发现在线的恩智浦document表示UID和序列号不同。 (第3页,第5行)
有一个OmniKey应用程序读取卡的序列号,它也只返回UID。
恩智浦文档说UID <>序列号和其他标准OmniKey应用程序返回UID作为序列号。
我已经开始在这个问题上脱掉头发了。如果有人能提供帮助,我将不胜感激。
每个智能卡都包含一个集成芯片,其中包含在制造过程中烧毁的唯一永久识别(UID)编号。此UID通常称为卡序列号(CSN)。卡序列号未加密,任何符合ISO标准的读卡器都可以读取卡序列号。
编辑1:
Mifare卡序列号是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是可以在产品的生产时间内分配给多于一个非接触式芯片的标识符,使得具有相同标识的多于一个卡可以部署到一个特定的非接触式系统中。
在这种情况下的区别在于“序列号”意味着数字是一系列,因此顺序分配。
MIFARE卡具有唯一标识号(或简称UID),它们由内部规则生成,该内部规则不一定是顺序的。这意味着如果你看到一张UID为01020304050607的卡片,那并不意味着到目前为止至少生产了那么多卡片。
如果你看到有人提到卡序列号,他们实际上指的是UID。
唯一最后的混淆可能来自MIFARE卡可以配置为在激活期间返回随机ID的事实。如果是这种情况,每次激活卡时都会得到不同的“UID”。在这种情况下,您需要读取块0中包含的数据(您需要知道扇区0的密钥)才能获得卡的真实UID。
对于DesFire卡: