NFC 贴纸用于启动具有独特 URL 的网站
NFC sticker to launch website with unique URL
我可以用一个网站编码 NFC 贴纸,当我用手机点击它时会打开该网站 phone。对于我想使用它的应用程序,我需要能够使 link 过期,这样用户就不能只保存 URL 并再次使用它。基本上我需要能够在每次扫描时更改的 URL 中放置一个随机字符串,例如 www.mywebsite.com/TCHQ23, www.mywebsite.com/LQ8FT,等等。
普通的 NFC 贴纸可以实现吗?如果没有,我会使用什么样的设备来实现这一目标?我知道有 Arduino 模块可以做到这一点,但是否有更简单的方法或现成的产品可以充当 NFC,但 URL 由计算机通过 USB 电缆更改?
谢谢
NFC 标签(某些)具有称为“镜像”的功能。您可以将读取计数器值镜像到 URL,每次将其点击到 reader 时该值都会增加,即每次调用读取命令时,计数器都会增加 1。NTAG 213、NTAG 215 等标签等都有这个功能。
更新:
如果您的要求是获取 URL 到 return 随机数据的一部分,并且使用更便宜的标签或标签,那么我建议您考虑使用 NTAG 213 标签,它既经济又实惠支持镜像功能。
如果您的 URL 数据是 http://www.abc@xyz.com 那么一旦启用计数器镜像(读取计数器必须首先启用)它看起来像
http://www.abc@xyz.com?000001
每次调用读取命令时,最后 6 位值都会增加值 1。 (000002、000003、000004 等等)
所以你的 card/device 必须在读取其中包含 link 的 NDEF 记录时呈现(“Well Known Type 1 with a record type definition of type U, etc”),这将导致大多数 phone 自动打开浏览器
https://www.oreilly.com/library/view/beginning-nfc/9781449324094/ch04.html
所需的记录类型的一些详细信息
大多数卡都能够存储一些静态数据,有些像@Adarsh Rotte 所说的那样具有计数器、随机数生成器、加密、密码保护、数据镜像(备份)以及其他功能,但这些都没有帮助因为这些自定义函数是特定于卡的,所以不/不能提供符合 NFC NDEF 规范的数据。
有一种叫做 JavaCard 的卡可以做到这一点,因为它们可以 运行 完全可编程 Java 应用程序。这些可以编程为使用正确的 NDEF 措施响应 NFC 读取请求,其中 URL 可以即时生成。
这些卡片上有一个 github 回购示例 Java 到 运行 的应用程序,展示了如何在 https://github.com/OpenJavaCard/openjavacard-ndef 处使用 NDEF 消息进行响应。
如果尝试使用此功能,请注意 https://github.com/OpenJavaCard/openjavacard-ndef/issues/10,默认的魔法 AID 编号不适合 NDEF,应在您将应用程序安装到卡上时进行配置。
此应用模拟 NFC Type 4 规格卡的行为。
您还需要对其进行自定义,使其具有正确的 NDEF 负载数据以及正确生成的 URL 结尾。
在 github 页面上列出了此应用程序支持的卡 make/model 示例,有些是双接口卡,但有些没有芯片触点,只有 NFC 接口。
根据您需要的 security/validation 级别,生成 URL 结局可能具有挑战性或容易。
从一个容易伪造的随机字符串开始,因为它没有验证级别,到一个混淆的计数器,再到一个 public 密钥类型加密计数器。
还有其他解决方案可以使用 URL 的权利生成 NDEF 数据,这些解决方案不使用卡并且通常需要自己的电源来 运行。
部分选项:-
Android phone 可以执行所谓的主机卡仿真 (HCE),这与 JavaCard 正在执行的操作非常相似,它伪装成 NFC Type 4 卡和响应如果完全可编程,它会发送,并且可能是根据 JavaCard.
的正确类型的 NDEF 消息
有些“Card Reader”设备可以通过 USB 连接到 PC/Raspberry Pie,也可以像 Android phone 一样执行 HCE。例如https://www.acs.com.hk/en/products/342/acr1252u-usb-nfc-reader-iii-nfc-forum-certified-reader/ - 数据表中详细记录了如何操作。
还有一些其他“Card Reader”模块可以通过 I2C 连接到 Arduino,也可以执行 HCE。 (从技术上讲,许多 USB 读卡器中使用的大多数 Arduino PN532 芯片也可以执行 HCE,但关于如何执行此操作的文档有点少 - 请参阅 https://www.nxp.com/docs/en/user-guide/141520.pdf 的第 4 节)
还有一些其他芯片可以充当静态数据 NFC 设备,它们也有一个 I2C 接口来写入静态数据,但允许“直通”模式到 I2C 接口,同样这些往往是 NFC 类型 4但为您做一些 HCE 类型的工作。
例如M24SR04-Y https://www.st.com/resource/en/datasheet/m24sr04-g.pdf 可以做到
所以在技术上可以使用多种方法,但实现起来都不是那么简单,但不是“贴纸”类型的 NFC 设备格式往往是非常简单的 NFC 设备,因为该格式限制了其中包含的硬件的复杂性。
我可以用一个网站编码 NFC 贴纸,当我用手机点击它时会打开该网站 phone。对于我想使用它的应用程序,我需要能够使 link 过期,这样用户就不能只保存 URL 并再次使用它。基本上我需要能够在每次扫描时更改的 URL 中放置一个随机字符串,例如 www.mywebsite.com/TCHQ23, www.mywebsite.com/LQ8FT,等等。
普通的 NFC 贴纸可以实现吗?如果没有,我会使用什么样的设备来实现这一目标?我知道有 Arduino 模块可以做到这一点,但是否有更简单的方法或现成的产品可以充当 NFC,但 URL 由计算机通过 USB 电缆更改?
谢谢
NFC 标签(某些)具有称为“镜像”的功能。您可以将读取计数器值镜像到 URL,每次将其点击到 reader 时该值都会增加,即每次调用读取命令时,计数器都会增加 1。NTAG 213、NTAG 215 等标签等都有这个功能。
更新:
如果您的要求是获取 URL 到 return 随机数据的一部分,并且使用更便宜的标签或标签,那么我建议您考虑使用 NTAG 213 标签,它既经济又实惠支持镜像功能。
如果您的 URL 数据是 http://www.abc@xyz.com 那么一旦启用计数器镜像(读取计数器必须首先启用)它看起来像
http://www.abc@xyz.com?000001
每次调用读取命令时,最后 6 位值都会增加值 1。 (000002、000003、000004 等等)
所以你的 card/device 必须在读取其中包含 link 的 NDEF 记录时呈现(“Well Known Type 1 with a record type definition of type U, etc”),这将导致大多数 phone 自动打开浏览器
https://www.oreilly.com/library/view/beginning-nfc/9781449324094/ch04.html
所需的记录类型的一些详细信息大多数卡都能够存储一些静态数据,有些像@Adarsh Rotte 所说的那样具有计数器、随机数生成器、加密、密码保护、数据镜像(备份)以及其他功能,但这些都没有帮助因为这些自定义函数是特定于卡的,所以不/不能提供符合 NFC NDEF 规范的数据。
有一种叫做 JavaCard 的卡可以做到这一点,因为它们可以 运行 完全可编程 Java 应用程序。这些可以编程为使用正确的 NDEF 措施响应 NFC 读取请求,其中 URL 可以即时生成。
这些卡片上有一个 github 回购示例 Java 到 运行 的应用程序,展示了如何在 https://github.com/OpenJavaCard/openjavacard-ndef 处使用 NDEF 消息进行响应。
如果尝试使用此功能,请注意 https://github.com/OpenJavaCard/openjavacard-ndef/issues/10,默认的魔法 AID 编号不适合 NDEF,应在您将应用程序安装到卡上时进行配置。
此应用模拟 NFC Type 4 规格卡的行为。
您还需要对其进行自定义,使其具有正确的 NDEF 负载数据以及正确生成的 URL 结尾。
在 github 页面上列出了此应用程序支持的卡 make/model 示例,有些是双接口卡,但有些没有芯片触点,只有 NFC 接口。
根据您需要的 security/validation 级别,生成 URL 结局可能具有挑战性或容易。
从一个容易伪造的随机字符串开始,因为它没有验证级别,到一个混淆的计数器,再到一个 public 密钥类型加密计数器。
还有其他解决方案可以使用 URL 的权利生成 NDEF 数据,这些解决方案不使用卡并且通常需要自己的电源来 运行。
部分选项:-
Android phone 可以执行所谓的主机卡仿真 (HCE),这与 JavaCard 正在执行的操作非常相似,它伪装成 NFC Type 4 卡和响应如果完全可编程,它会发送,并且可能是根据 JavaCard.
有些“Card Reader”设备可以通过 USB 连接到 PC/Raspberry Pie,也可以像 Android phone 一样执行 HCE。例如https://www.acs.com.hk/en/products/342/acr1252u-usb-nfc-reader-iii-nfc-forum-certified-reader/ - 数据表中详细记录了如何操作。
还有一些其他“Card Reader”模块可以通过 I2C 连接到 Arduino,也可以执行 HCE。 (从技术上讲,许多 USB 读卡器中使用的大多数 Arduino PN532 芯片也可以执行 HCE,但关于如何执行此操作的文档有点少 - 请参阅 https://www.nxp.com/docs/en/user-guide/141520.pdf 的第 4 节)
还有一些其他芯片可以充当静态数据 NFC 设备,它们也有一个 I2C 接口来写入静态数据,但允许“直通”模式到 I2C 接口,同样这些往往是 NFC 类型 4但为您做一些 HCE 类型的工作。 例如M24SR04-Y https://www.st.com/resource/en/datasheet/m24sr04-g.pdf 可以做到
所以在技术上可以使用多种方法,但实现起来都不是那么简单,但不是“贴纸”类型的 NFC 设备格式往往是非常简单的 NFC 设备,因为该格式限制了其中包含的硬件的复杂性。