MIFARE Ultralight 上的 OTP 页面在首次使用时是否应该为空?

Should the OTP page on a MIFARE Ultralight be empty on first use?

我从亚马逊买了一些 MIFARE Ultralight 贴纸。他们都将第 3 页设置为 E1 10 6D 00

我的理解是,我现在不能设置这10个已经设置好的位,所以我现在只有22个位可以有效地用于OTP页面。事实上,我尝试设置为 0,但它没有用(这是有道理的,因为文档声明它们将在写入之前进行 ORed)。

碰巧,我想用它们做什么对我来说并不重要,但我想至少在亚马逊评论中指出这一点,供其他可能想要使用 OTP 页面的人使用并从该卖家处购买。

我是 NFC 的新手,所以不确定会发生什么,但我觉得我被卖了一个 duff 产品。你能确认我应该期望第 3 页是 00 00 00 00 吗?

这在很大程度上取决于您想购买什么以及您实际收到了什么。

如果您将这些标签作为 "MIFARE Ultralight" 标签购买,那么您通常会期望 OTP 区域处于出厂状态(即全零)。

但是,如果您购买它们作为 NFC 标签(或作为 NFC 论坛类型 2 标签或作为 NTAG),那么 OTP erea 的初始内容在某种程度上是有意义的.您在 OTP 区域中找到的值是 Capability Container,表示该标签是根据 NFC 论坛 2 类标签规范格式化的(即它预先格式化为 NFC 标签)。通常,还会有一些数据已经写入下一页(在您的情况下可能是 03 00 FE 00)。 NFC(论坛)标签不会将 OTP 区域用作单向计数器,因此将它们设置并用作功能容器没有问题。

我看到的关于您描述的内存内容的问题是 Capability Container 中指示的数据区大小。 0x6D 表示 872 字节的数据内存。如果标签不是 MIFARE Ultralight 标签而是 NTAG216,这很好,它具有恰好可用的数据内存量并且 总是 处于这种预格式化状态。

但是,如果标签实际上是一个 MIFARE Ultralight 标签(芯片 MF0ICU1),那么这个 Capability Container 将指定比标签实际拥有的更多的数据内存。这将使标签无法用于正确的 NDEF 消息处理,并且由于无法清除 OTP 位,您无法将指示的大小更改为实际可用的值(48 字节 = 0x06)。

注意:根据OP的评论,标签确实是NTAG216(购自www.amazon.co.uk/gp/product/B075RXBVKM)。因此,内存内容完全没问题。