gpt4 book ai didi

raspberry-pi - Wiegand 26 读卡器可以从 NFC 卡读取什么样的数据?

转载 作者:行者123 更新时间:2023-12-03 23:50:17 25 4
gpt4 key购买 nike

我可以使用手机的 NFC 读卡器读取 13.56 MHz NFC 卡,并得到如下十六进制值:

1BF52327



这代表卡的 UID 或序列号。

我可以从 Wiegand 读卡器获得哪些数据?它可以读取相同的序列号吗?

由于韦根阅读器只能读取 26 位,它会读取哪些确切数据?

更新

我能够测试上述内容。我使用了 HID SE r10 阅读器和非品牌阅读器。

所以这里是结果。

这是上述卡 (1BF52327) 的二进制值,由我的手机的 NFC 准备好:

11011111101010010001100100111



接下来这是我从 HID 读卡器获得的同一张卡的值:

1101100011011100000010101110010000000000



这是我从非品牌读卡器获得的同一张卡的值(value):

1101110000001010111001000



我可以很快找到 HID 和非品牌阅读器之间的相关性,最终它们几乎相同。

但我无法将 Wiegand 读取器读取的值与 NFC 读取的原始值相关联。

关于我做错了什么的任何想法?我用过几个库 Joan , Wiegand-Protocol-Library-for-Arduino在 RPI 和 arduino 上,我从韦根读者那里得到了相同的值

最佳答案

韦根阅读器能否读取与手机相同的序列号?

13.56 MHz 的韦根读卡器(更具体地说是 ISO/IEC 14443 A 型)通常读取卡片/标签的防碰撞标识符。手机似乎还会向您显示防碰撞标识符 (UID)。所以,是的,两个设备都读取相同的数据元素。

但是,正如您正确发现的那样,阅读器仅通过 Wiegand 接口(interface)传输 26 位值(实际上只有 24 位,因为其中两个是奇偶校验位)。由于 UID 有 4 字节、7 字节或 10 字节,因此需要将 UID 截断为 3 字节值,以便通过 Wiegand 接口(interface)传输。

我可以从 Wiegand 读卡器获得哪些数据?

Wiegand 界面上的帧如下所示:

b0  b1  b2  b3  b4  b5  b6  b7  b8  b9  b10 b11 b12 b13 b14 b15 b16 b17 b18 b19 b20 b21 b22 b23 b24 b25
PE D23 D22 D21 D20 D19 D18 D17 D16 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 PO

第一行是通过韦根线到达时编号的位。第二行与接收器解释的位相同,其中 PE (b0) 是 D23..D12 (b1..b12) 上的偶校验位,PO (b25) 是 D11 上的奇校验位。 D0 (b13..b24) 和 D23..D0 是表示无符号整数的数据位(实际上是两个,因为高 8 位是站点代码,低 16 位是标签 ID)。

即使在逻辑上拆分为站点代码和标签 ID,这些阅读器通常只使用标签 ID 的截断形式作为 24 位值。

该值如何映射到您在手机上收到的十六进制值很大程度上取决于该十六进制表示的创建方式(特别是其字节顺序)。它可能就像只取最后 3 个字节( F52327 )一样简单,但它也可能是 1BF523 (或任何字节反转(甚至位反转)的变体)。

更新:关于您为读者获得的值(value)......

首先,您似乎已经从值中删除了前导零。例如, 1BF52327是一个 4 字节的值,因此有 32 位:
   1    B     F    5     2    3     2    7
0001 1011 1111 0101 0010 0011 0010 0111

从读取器接收到的值似乎也是如此(读取器或库自动丢弃前导奇偶校验位或丢弃两个奇偶校验位并在值的末尾添加任意数量的零(?))。

所以你的值(value)观是:
1101 1000 1101 1100 0000 1010 1110 0100 0000 0000
1101 1100 0000 1010 1110 0100 0

正如您自己发现的那样,这些显然与开头缺少一个字节以及来自 HID 读取器的值最后填充更多零有关。

仔细观察,这些值也与第一个二进制值相关。诀窍是首先反转值。因此,值(value)观
1101 1000  1101 1100  0000 1010  1110 0100  0000 0000
1101 1100 0000 1010 1110 0100 0

变得
0010 0111  0010 0011  1111 0101  0001 1011  1111 1111
0010 0011 1111 0101 0001 1011 1

对于来自韦根阅读器的值,这也将修复尾随奇校验位 (PO),因为现在有 7 个“1”位(包括 PO)(尽管这可能只是巧合)。

您现在可以看到,这些值正好代表颠倒字节顺序的第一个值。如果你颠倒字节顺序
   1    B     F    5     2    3     2    7
0001 1011 1111 0101 0010 0011 0010 0111

你得到
   2    7     2    3     F    5     1    B
0010 0111 0010 0011 1111 0101 0001 1011

将其与其他两个值进行比较,您会发现它们匹配:
0010 0111  0010 0011  1111 0101  0001 1011
0010 0111 0010 0011 1111 0101 0001 1011 1111 1111
0010 0011 1111 0101 0001 1011 1

因此,您从 HID 阅读器收到的值表示 2723F51B您从韦根阅读器收到的值表示 23F51B .因此,字节 27被截断。

关于raspberry-pi - Wiegand 26 读卡器可以从 NFC 卡读取什么样的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35491151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com