在线商店

NT4H NTAG®424 DNA标签读写软件

C语言编程的源代码示例

本页解释的软件源代码示例是指NFC NTAG®DNA技术解决方案。它的主要目的是写入和读取NTAG®413 DNA和NTAG®424 DNA标签,即NXP NTAG®Type 4标签。

这些标签完全符合:

  • ISO/IEC 14443,所有部分1至4,ISO/IEC 7816-4文件选择和APDU处理,以及符合ISO/IEC18092的被动目标
  • 7-byteUID(根据ISO/ iec14443 - 3)
  • NFC论坛标签4类型技术和NDEF数据结构配置

然而,在所有NTAG家族类型中选择NTAG®424 DNA标签的主要原因是其先进的安全支持。NTAG®424 DNA标签提供先进的安全方法,例如:

  • 用于身份验证/安全消息传递或LRP的标准AES-128加密封装AES操作,具有更强的抗攻击能力
  • 3-pass相互认证访问受保护的数据文件
  • 安全唯一NFC消息(SUN)
  • 增量NFC点击计数器
  • 普通、CMAC和加密通信(可配置)
  • ECC-basedNXP原创签名
  • 具有灵活ASCII镜像的项目url的片上组装。

因此,我们的软件示例包括所有NTAG®424 DNA安全协议和选项实现的功能。

文档和软件下载

软件概述

软件功能:

  • 获取并编辑文件设置
  • 得到UID
  • 设置随机ID
  • 更改AES密钥
  • 线性读/写(ASCII & HEX)
  • 三级认证模式
  • SDM (secure dynamic message)读写
  • 获取SDM读数计数器
  • 存储AES密钥到阅读器
  • 锁定/解锁阅读器
  • 高级阅读器选项(指定阅读器COM端口、IP地址、SN等)

可用的编程语言:

  • C(控制台)
  • c# (GUI)

支持的操作系统、平台和环境:

  • 跨平台的

支持的标签、标签、卡片:

  • NXP NTAG®21x(210, 213, 215, 216,标签篡改器)
  • NXP NTAG®4xx DNA (413,424)

建议的硬件:

  • µFR纳米
  • µFR Nano Online
  • µFR经典
  • µFR经典CS
  • µFR提前
  • µFR XL

Nt4h源coe软件

软件呼吸 描述
ufr-examples-c-nt4h

控制台C源代码示例nt4h标签实现与µFR系列NFC RFID阅读器。bob全站版

ufr-examples-c_sharp-nt4h

GUI c#源代码示例fnt4h标签实现与µFR系列NFC RFID阅读器。bob全站版

软件手册

1.NT4H软件- C控制台-阅读器打开

下载:ufr-examples-c-nt4h

NT4H用于NXP NTAG®新标签系列操作。该系列包括NTAG®413 DNA和NTAG®424 DNA。NTAG®424 DNA完全符合NFC论坛Type 4标签IC,支持AES-128加密操作和新的安全唯一NFC (SUN)消息。恩智浦不建议在新项目中使用NTAG®413 DNA标签,因为可用的NTAG®424 DNA提供了更好的安全特性。

启动应用程序将打开一个带有主菜单打印输出的控制台。
如果您正确安装了硬件驱动程序,您将能够通过选择其中一个可用选项来打开阅读器端口:

  • 选项1 -阅读器端口使用默认(自动检测)选项打开(通常用于连接到主机的单个USB阅读器)
  • 选项2 -使用手动配置的参数reader_type、port_name、port_interface和argument打开阅读器端口。

D NFC SDK ufr examples c nt4h master win64 release nt4h c example.exe 27 08 2020 13 36 18

2.NT4H软件- C控制台-主菜单

这里是简单阅读器开放模式展示。
1.选择菜单项。将打开阅读器端口并与设备建立通信。通信建立后,控制台显示主菜单,其中列出了所有软件功能。

D NFC SDK ufr examples c nt4h master win64 release nt4h c example.exe 27 08 2020 13 37 35

2.1 NT4H Software - C console -获取文件设置

第一个函数Get File Settings显示所选的文件设置。根据您使用的标签,键入1 -2表示NTAG413,键入1-3表示ntag424。

NTAG413有两个标准数据文件:

  • 文件号1指的是能力容器文件(32字节),
  • 文件号2是指NDEF文件(128字节)。

NTAG424有三个标准数据文件:

  • 文件号1指的是能力容器文件(32字节),
  • 文件号2是指NDEF文件(256字节),
  • 3号文件为私有文件(128字节),
  • 返回的参数数量是可变的。

如果当前文件是带有AES安全消息传递的标准数据文件,则适用以下操作:

  • 文件类型
  • 通信方式
  • 文件访问权限。

Nt4h c设置文件设置1

示例1

文件大小示例:

  • 文件号= 3 (NTAG424私有文件)
  • 已加密的通信模式状态(0x03)
  • 安全动态消息传递已禁用
  • 读取的键值是2,写入的键值是3,
  • 读取/写入的键值为3,
  • 更改文件设置的密钥编号为0,
  • 文件大小为128字节。

Nt4h c get文件设置

示例2

如果当前文件是具有安全动态消息传递的标准数据文件,则它包含更多数据。

例子:

  • 文件号是2 (NDEF文件),
  • 启用了安全动态消息,
  • 读写访问是免费的(键0x0E),
  • 文件大小为256字节,
  • 已启用UID镜像,
  • SDM读取计数器启用,
  • SDM读取计数器限制已禁用,
  • 文件的加密数据部分被激活,
  • SDM Meta Read的Key number是2 (UID, SDM读取计数器,PICC数据,MAC),
  • 文件密钥编号的加密数据部分为2。
  • SDM读取计数器无需认证即可读取,
  • PICC数据偏移量(加密UID和SDM读取计数器)为49,
  • MAC输入偏移量为86,
  • 文件偏移量的加密数据部分是86,
  • 文件长度的加密数据部分为32,
  • MAC偏移量是124。

Nt4h c set file设置

2.2 NT4H Software - C console -设置文件设置

要添加文件设置,请选择第二个菜单选项。由于参数较多,文件参数设置有两个功能。

Nt4h c设置文件设置

示例1

Nt4h c设置文件设置s2

标准数据文件:

  • 3号文件(专有文件)
  • 当前通信模式是加密的,
  • Change Key value为0。

新的设置如下:

  • 普通通信模式,
  • 读关键字2,
  • 写3号键,
  • 读写键3,
  • 更改键0,
  • 提供的密钥认证模式。

示例2

Nt4h c设置文件设置s2

安全动态消息文件:

  • 文件号为2,
  • 通讯方式
  • 读键是14,
  • 写键是14,
  • 读写键为14,
  • 更改键值为0,
  • 已启用UID镜像,
  • SDM读取计数器启用,
  • SDM读取计数器被禁用,
  • 文件的加密数据部分被激活,
  • SDM元读键为2,
  • SDM文件读取为2,
  • SDM读数计数器键为2,
  • 加密PICC数据偏移49,
  • MAC输入数据偏移86,
  • 加密数据部分偏移86,
  • MAC偏移124。

2.3 NT4H Software - C console -获取UID(仅NTAG 424)

如果您使用启用身份验证安全模式的NTAG®424标签,则菜单选项3。将显示标签的UID。

该函数返回卡的7字节UID。如果随机ID选项被激活,它是有用的。需要使用任何卡密钥进行有效的身份验证。

Nt4h c get uid

2.4 NT4H Software - C console -设置随机UID (NTAG . zip®424只)

NTAG®424 DNA通过随机UID设置(菜单选项4)提供额外的标签安全性。
Set Random UID函数将7字节的唯一UID替换为4字节的随机UID。因此,标记在每次读取时返回一个4字节的随机UID。标签现在返回一个4字节的随机ID,而不是一个7字节的唯一ID。
该功能需要主密钥认证(编号为0)。

警告:此操作不可逆转!

Nt4h c get uid example1

2.5 NT4H Software - C console -更改AES键

Nt4h c更改aes键 菜单选项5允许更改AES密钥。
该功能需要主密钥认证(编号为0)。
通过输入16个十六进制字节输入新的AES密钥。
如果要修改的密钥不是“主密钥”,则前面的“密钥”值为必填项。

示例1

AES密钥修改示例:

  • 4号钥匙。
  • 应用程序主键值0x00000000000000000000000000000000
  • 旧键4值0x00000000000000000000000000000000
  • 新增键4值0x1111111111111111111111111111111111111111111111。

Nt4h c更改aes键

2.6 NT4H软件- C控制台-线性读取

线性读取功能包括普通读取、标记读取和加密读取。此外,如果标记受到保护,则提供密钥模式和内部密钥模式下的内容读取身份验证允许内容访问。否则,可以在不输入密钥的情况下读取解锁的标签内容(选项:不认证)。控制台将显示在所选身份验证模式下可读的内容为十六进制和ASCI符号。

2.6.1 NT4H软件- C console -线性读取

线性读功能包括普通读、消息认证码(Message Authentication Code)和加密读。此外,如果标记受到保护,则提供密钥模式和内部密钥模式下的内容读取身份验证允许内容访问。否则,不需要输入密钥就可以访问解锁的标签内容(选项:不认证)。控制台将显示在所选身份验证模式下可读的内容为十六进制和ASCI符号。

该函数读取文件记录的数据。需要配置的参数如下:

  • 文件数量,
  • 读取或读/写访问键,
  • 通信方式,
  • 认证模式(如果“Read Key”为14,则选择“No Authentication”选项)
  • 起始地址(0 -最大地址),
  • 数据长度。

Nt4h c线性读函数

2.7 NT4H软件- C控制台-线性写入

与线性读函数一样,线性写函数也允许三种通信模式和十六进制或ASCII格式的内容写入。所选择的认证方式也适用于所录制的内容。

该函数将数据写入文件。需要配置的参数如下:

  • 文件数量,
  • 读取或读/写访问键,
  • 通信方式,
  • 认证模式(如果read Key为14,则选择No Authentication选项),
  • 起始地址(0 -最大地址),
  • 以ASCII或十六进制格式输入数据。

Nt4h c线性写入

2.8 NT4H Software - C console -安全动态消息读取

NT4H DNA标签上的安全动态消息传递(SDM)支持SUN功能。它引用NDEF消息中的文本(ASCII)。
如果要应用安全动态消息读取功能,请启用“安全动态消息”文件。同时,将Read Access设置为free (Key 14 - No Authentication选项)。

Nt4h c SDM读取

2.9 NT4H Software - C console -安全动态消息写入

与“安全动态消息读取”一样,对于“安全动态消息写入”功能,请启用“安全动态消息”文件。同时,将Read Access设置为free (Key 14 - No Authentication选项)。

Nt4h c SDM写入

2.10 NT4H Software - C console -获取SDM读取计数器

只有启用了文件SDM,才存在安全动态消息读取计数器。是否需要身份验证,取决于文件SDM读取计数器访问设置。

Nt4h c得到SDM读数计数器

2.11 NT4H Software - C console -存储AES密钥到阅读器

阅读器设备可以存储16个AES密钥,索引值为0-15。这意味着Key索引可以是0到15之间的任何值。

示例1

该示例展示了如何将值为0 x 00000000000000000000000000000000的Key存储到地址1的阅读器中。

Nt4h c存储aes键到阅读器

示例2

“AES密钥”存储在读卡器中,默认为解锁状态。您可以通过任何8字节的密码锁定存储的密钥。

例子:
密码为12345678

Nt4h c存储aes密钥到阅读器密码

示例3

如果存储的密钥是密码保护(锁定),您需要通过提供其8字节的密码来解锁它。

例子:
密码为12345678

Nt4h c存储aes密钥进入阅读器密码解锁

本手册给出了C语言的软件示例。尽管如此,其他编程语言的所有相关源代码软件都包含相同的函数。在可能的情况下,开发了图形用户界面。
请查阅我们的GitLab库有关其他编程语言的可用源代码示例。

Baidu
map