1

我正在使用 C# 和 Wiegand 26 读卡器来读取 Mifare Ultralight 卡。当我通过卡时,我得到十进制的“4392072”,但卡的 UID 是十六进制的“04 43 EB 61 E0 25 80”。

那么如何使用这个读卡器来获取完整的卡 UID 呢?

4

1 回答 1

0

您仅获得第一防碰撞级别的一部分。

4392072 (十二月) = 430488 (十六进制)

  • 0x88 -> 级联标记
  • 0x04 -> Ultralight 卡的第一个字节
  • 0x43 -> Ultralight 卡的第二个字节

这意味着您的阅读器只执行(或只给您)第一个反碰撞循环的一部分。描述非接触式智能卡防冲突回路的 ISO 14443 - 3 定义了防冲突回路的以下程序:

  1. 阅读器 -> '93'(防碰撞循环 1 命令)

  2. 卡 <- '88' + '1st byte' + '2nd byte' + '3rd byte'

  3. 阅读器 -> '95'(防碰撞循环 2 命令)

  4. 卡 <- '4th byte' + '5th byte' + '6th byte' + '7th byte'

也许您应该执行另一个命令,或者您的阅读器可能只支持 4 字节 UID 卡?

于 2017-05-22T12:21:28.130 回答