NTAG213 Mifare Ultralight 带身份验证

时间:2021-03-20 07:45:29

标签: flutter nfc ntag21x

我是 NFC Android 的新手,并且在为 NTAG213 设置密码后尝试用 NTAG213 写入时,我已经被困了好几天
但它失败了,我不知道会发生什么有人可以帮助我 更新了有关代码的更多信息

TenantTOTP-userb@test.com

1 个答案:

答案 0 :(得分:0)

更新

既然我们看到了更多代码,首先要开始的是,所有这些 transceive 命令无论成功与否都会返回一个值。

因此,最好对发送到标签的所有这些命令进行错误检查,方法是检查回流阀以查看哪个位出错。

从标签的数据表中,ACKNAK 值是

<块引用>

表 23.ACK 和 NAK 值代码(4 位)ACK/NAK
啊确认(ACK)
0h NAK 无效参数(即无效页面地址)
1h NAK 用于奇偶校验或 CRC 错误
4h NAK 无效认证计数器溢出
5h NAK 表示 EEPROM 写错误

所以返回值应该总是Ah

原创

默认情况下,仅在标签上设置密码并不能保护任何内容。

您还需要设置 AUTH0 字节(ntag213 上第 0x29h 页的字节 3 - 请参阅标签数据表了解详细信息),因为默认情况下,您刚刚设置的密码不会保护任何内存页。

您需要将该值从保护页面 0xFFh 及以上(即无页面)更改为至少保护页面 0x04h(或 0x00h)及以上,以对 NDEF 数据的访问产生任何影响。

改变页 0x29h 的值 Byte 3 是通过标准写命令完成的,因此读取页 0x29h,将读取的 4 个字节的最后一个字节更改并写回该页。

您还应该知道访问字节内存地址的 PROT 位在读取和写入之间更改以进行密码保护(默认为密码保护写入访问),这也由标准写入命令更改到正确的内存页面。