NFC Mifare Ultralight虚假响应数据



我正在使用Ionic/Capacitor的PhoneGap-NFC,并试图锁定NXP NTAG213。

根据数据表(https://www.nxp.com/docs/en/data-sheet/NTAG213_215_216.pdf),我必须写入0x2B页以设置PWD, 0x2C页用于PACK。

const set_password_cmd = Uint8Array.from([
0xA2, //WRITE
0x2B, //address 2B
1, 2, 3, 4//pwd
]);
let res = await nfc.transceive(set_password_cmd);
const set_pack_cmd = Uint8Array.from([
0xA2, //WRITE
0x2C, //address 2C
2, 7, 0, 0//pack
]);
res = await nfc.transceive(set_pack_cmd);

Password应为1234,pack应为27。

问题是我一直得到0xA (LF)作为对两个命令的响应,标记不锁定自己。

p。我在addTagDiscoveredListener调用之后调用.connect(tech)和.close(),发送GET_VERSION命令按预期工作并返回正确的数据。

请记住,仅设置Password和Pack默认情况下不会启用密码保护,您还需要告诉它要保护卡的哪些部分。

AUTH0字节(ntag213上0x29h页的第四个字节)的默认值设置为0xFFh,这意味着没有页面受设置的密码保护(参见数据表8.5.7节中的表11)

AUTH0定义需要进行密码验证的页面地址。字节AUTH0的有效地址范围是00h ~ FFh。如果AUTH0设置为高于用户配置的最后一页的页面地址,则有效地禁用密码保护

因此,您可能希望将AUTH0字节设置为至少0x4h(用户数据区开始)或更低的值以启用密码保护。

您还应该检查ntag 213的0x2Ah页上的PROP访问位是否设置为您的需要,因为默认情况下仅为密码保护write access

最新更新