是否可以锁定NFC标签,然后解锁并再次写入数据?

我正在开发一个在公共场所使用标签的NFC应用程序,这样就有必要使用密码或其他工具锁定标签,以避免某人删除信息或修改其内容。 标签应该在以后更新。 那么,有可能做到这一点? 或者当我锁定标签时,它是否永远保持只读状态?


这很大程度上取决于您使用的NFC标签的类型(以及价格)。 典型的便宜的NFC标签(例如像Topaz / Jewel这样的1型标签或者MIFARE Ultralight,NTAG203,Kovio 2K或my-d NFC等2型标签)不允许这样做。 它们只能被永久写保护(这是在公共场所安装标签时通常应该做的事情)。

其他标签确实提供了一些基于表单认证的访问控制,可以用来限制写访问标签内存,例如

  • MIFARE Ultralight C:使用3DES的共同质询响应认证
  • NTAG21x,MIFARE Ultralight EV1,my-d移动NFC:使用明文密码的基于密码的“身份验证”。 被警告说,明文密码可能会影响安全。
  • MIFARE DESFire(EV1):使用DES,3DES或AES的相互质询响应认证
  • ...
  • 身份验证不是NFC论坛标签操作规范的一部分,因此依赖于标签/标签制造商。 为了在Android上使用这些高级功能,您需要tech.transceive()实施相关命令(使用tech.transceive()方法)。

    请注意,Android上的Ndef.makeReadOnly()不一定会设置任何硬件锁定位。 这种方法在某些情况下也可以仅在协议级别设置写保护(即设置一个标志,请求NFC设备不写入任何数据,但不保护实际数据页不被覆盖)。


    当然,但是Android API没有现成的方法来做到这一点。 您必须使用APDU来控制对标签的访问。

    Ndef类有一个makeReadOnly方法:http://developer.android.com/reference/android/nfc/tech/Ndef.html#makeReadOnly()但你不能解锁标签。

    链接地址: http://www.djcxy.com/p/84251.html

    上一篇: Is possible to lock a NFC tag and later unlock and write data again?

    下一篇: 1 symbol come from when using LLVM's libc++?