Online Store

MIFARE® Card Programming - µFR Advanced Software SDK

Advanced MIFARE® Cards reading & writing source code software example

MIFARE SDK提供以下编程语言版本

  • 爪哇(包括小程序),
  • JavaScript,
  • 拉撒路
  • 博兰德尔福,
  • C++ 建造者,
  • Microsoft® Visual C++ .NET,
  • Microsoft® Visual C# .NET,
  • Microsoft® Visual Basic .NET

Docs & Software Download

线性写入、LinearWrite_AKM1、LinearWrite_AKM2 LinearWrite_PK

这些函数用于使用线性地址空间的模拟来写入数据。 证明真实性的方法由函数名称中的后缀确定:MIFARE SDK - uFR 高级软件,带有 MIFARE 卡标签 1 的 SDK

  • aucData – 指向包含要写入的数据的字节序列的指针
  • usLinearAddress – 用于数据写入的线性地址
  • usDataLength – 条目的字节数。 在 aucData 中,在调用函数之前必须分配最小的 usDataLength 字节数
  • lpusBytesWrite – 指向“无符号短”类型变量的指针,其中写入从卡成功读取的字节数。 如果条目成功完成,则此数据等于 usDataLength 参数。 如果在写入某些块时出错,该函数将返回通过此参数成功写入的字节数。
  • ucAuthKey – 此参数定义是使用 A 密钥还是密钥 B 执行身份验证。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)。
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,这适用于所有写入的扇区。
 

线性格式化卡、LinearFormatCard_AKM1、LinearFormatCard_AKM2、LinearFormatCard_PK

这些功能用于新键 A 和 B 写入以及所有扇区拖车中的访问位。 启用第九个尾部字节的设置(可以输入任何值的通用字节)。 在所有扇区拖车中,为整个卡设置了相同的值,因此相同的密钥和访问权限有效。 由于有必要在写入扇区拖车之前根据先前密钥证明真实性,因此这些功能可能适用于初始化新卡(使用传输密钥执行身份验证,所有密钥字节都0xFF)或使用相同的密钥和所有扇区的访问权限重新初始化它。 当然,必须始终小心先前设置的访问权限(访问位),以防禁用某些键或位的访问权限控制更改。

扇区拖车写

此功能组在扇区拖车启动方面提供了更大的灵活性:MIFARE SDK - uFR 高级软件,带有 MIFARE 卡标签 2 的 SDK

  • aucNewKeyA – 包含新 A 键的 6 字节数组上的指针
  • ucBlocksAccessBits – 定义所有数据块权限的访问位值。 它可以具有值 0 到 7
  • ucSectorTrailersAccessBits – 定义所有扇区拖车访问权限的访问位值。 它可以具有值 0 到 7
  • ucSectorTrailersByte9 – 定义所有扇区拖车的访问权限的访问位值。 它可以具有值 0 到 7
  • aucNewKeyB – 包含新 B 键的 6 字节数组上的指针
  • lpucSectorFormatted – 指向“无符号字符”类型变量的指针,通过该变量返回成功格式化的扇区尾部的数量。 例如。如果所有扇区拖车都已成功初始化,则在 MIFARE® 1K 上,通过此参数返回值 16,表示扇区数。 如果出现错误,该参数指示从零开始成功初始化的扇区数。
  • ucAuthMode此参数定义是执行身份验证 A 键还是 B 键。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)。
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,这适用于所有写入的扇区。
  • aucGivenKey – 指向第六字节字符串的指针,该字符串包含用于在“提供的密钥”方法中证明真实性的密钥。 函数名称中的_PK后缀表示此方法用法。
 

用于处理数据块的函数

阻止读取、BlockRead_AKM1、BlockRead_AKM2 BlockRead_PK

此功能组用于块内容读取。 始终读取整个块(块的 16 字节)。 函数使用所谓的 bloc 寻址(第一个块的地址为 0;第一个扇区拖车的地址为 3,下一个扇区拖车有 7 个,依此类推,直到最后一个 MIFARE® 1K 块(也是最后一个扇区的尾部)的地址为 63)。 这些功能还允许读取扇区拖车内容(其可用部分用于读取,具体取决于访问权限集)。

MIFARE SDK - uFR 高级软件,带有 MIFARE 卡标签的 SDK 3

  • aucData – 指向将存储读取数据的字节数的指针。 在调用函数之前,必须至少分配 16 个字节。
  • ucBlockAddress – ucAuthMode block address。 此参数定义是执行身份验证 A 键还是 B 键。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)。
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,这适用于写入的所有扇区
  • ucSectorTrailersByte9 – 定义所有扇区拖车的访问权限的访问位值。 它可以具有值 0 到 7
  • aucProvideKey – 指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。 函数名称中的_PK后缀表示此方法用法。

这些函数的工作方式与 BlockRead 组函数相同,并且是为块内容读取而设计的。 唯一的区别是使用了部门寻址。 这包括单独发送扇区地址和扇区内的块地址。 对于 MIFARE®,1K 扇区地址可能在 0 到 15 的范围内,块地址可能在扇区内的 0 到 3 范围内。 对于MIFARE®,4k扇区地址可能在0到39的范围内,并且由于地址空间组织的后半部分不同(大于2MB),最后8个扇区(扇区32到39)中的块地址可能在0到15的范围内。 始终读取整个块(16 字节块)。

 

这些功能可以读取扇区拖车内容(其可用部分用于读取,具体取决于访问权限集)。

  • aucData – 指向将存储读取数据的字节数组的指针。 在调用函数之前,必须至少分配 16 个字节
  • ucSector地址 – 部门地址
  • ucBlockInSectorAddress – 扇区内的块地址
  • ucAuthMode – 此参数定义是使用 A 密钥还是 B 密钥执行身份验证。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)。
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,这适用于写入的所有扇区
  • aucGivenKey – 指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。 _PK 函数名称中的后缀表示使用了此方法。

块写入、BlockWrite_AKM1、BlockWrite_AKM2、BlockWrite_PK

这些函数用于将数据输入(一次 16 个字节)到块中。 函数使用所谓的 bloc 寻址(第一个块的地址为 0;第一个扇区拖车的地址为 3,下一个扇区拖车有 7 个,依此类推,直到最后一个 MIFARE® 1K 块(也是最后一个扇区的尾部)的地址为 63)。 此功能组不允许直接数据输入扇区尾部。 为此,请使用特殊函数 SectorTrailerWrite 和 SectorTrailerWriteUnsafe。

MIFARE SDK - uFR 高级软件,带有 MIFARE 卡标签的 SDK 4

  • aucData – 指向将存储读取数据的字节数的指针。 在调用函数之前必须至少分配 16 个字节
  • ucBlockAddress – 卡块地址
  • ucAuthMode – 此参数定义是使用密钥 A 还是密钥 B 执行身份验证。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)。
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,这适用于所有读取的扇区
  • aucProvideKey – 指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。 函数名称中的_PK后缀表示此方法用法。
 

FORBIDEN_DIRECT_WRITE_IN_SECTOR_TRAILER。

BlockInSectorWrite, BlockInSectorWrite_AKM1, BlockInSectorWrite_AKM2, BlockInSectorWrite_PK

这些函数的工作方式与 BlockWrite 组函数相同;它们用于将数据输入(一次 16 个字节)到块中。 唯一的区别是使用扇区寻址。 扇区寻址是指扇区内单独的发送扇区和块地址。 对于 MIFARE®,1K 扇区地址可能在 0 到 15 的范围内,块地址可能在扇区内的 0 到 3 范围内。 对于MIFARE®,4k扇区地址可能在0到39的范围内,并且由于地址空间组织的后半部分不同(大于2MB),最后8个扇区(扇区32到39)中的块地址可能在0到15的范围内。 此功能组不允许直接数据输入扇区尾部。 为此,请使用特殊函数扇区拖车写入和扇区拖车写入不安全MIFARE SDK - uFR 高级软件,带有 SDK for MIFARE 卡标签 5

  • aucData – 指向将存储读取数据的字节数的指针。 在调用函数之前必须至少分配 16 个字节
  • ucSectorAddress – Sector Address
  • ucBlockInSectorAddress – 此参数定义是使用 A 键还是 B 键执行身份验证。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,这适用于写入的所有扇区
  • aucProvideKey – 指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。 函数名称中的_PK后缀表示此方法用法。
 

FORBIDEN_DIRECT_WRITE_IN_SECTOR_TRAILER。

扇区拖车写入、SectorTrailerWrite_AKM1、SectorTrailerWrite_AKM2、SectorTrailerWrite_PK

这些功能用于在扇区拖车中写入数据。 函数还可用于扇区尾部块寻址以及由 ucAddressingMode 参数确定的扇区寻址。 MIFARE SDK - uFR 高级软件,带有 SDK for MIFARE 卡标签 6在块寻址的情况下,第一个块的地址为 0;拖车具有第一个扇区地址 3 和下一个扇区地址 7,依此类推。直到MIFARE® 1k的最后一个区块,它也是最后一个扇区的拖车,地址为63。 这组函数简化了块访问权限设置(访问位)的位操作,并最大限度地减少了由于这些位的格式不正确而永久阻塞整个扇区的可能性。 格式化访问位由 RFID 阅读器在写入之前进行。 API 用户可以选择由值 0 到 7 表示的适当块访问权限,并将其传输到这些功能。

 

对于扇区拖车,以下访问权限有效:MIFARE SDK - uFR 高级软件,带有 MIFARE 卡标签的 SDK 7

  • 访问位 C1 C2 C3
  • 访问值(提交到函数)
  • 访问权限
  • 密钥 A 字节包含访问位和九字节密钥 B
  • 阅读和写作
 

对于扇区拖车,以下访问权限有效:

* 如果对扇区拖车的访问权限设置了适当的扇区,以便可以读取B键,则在任何情况下都不能用于认证。 如果允许访问权限,这些函数还会设置新的扇区键。

  • 访问位 C1 C2 C3MIFARE SDK - uFR 高级软件,带有 MIFARE 卡标签的 SDK 8
  • 访问值(提交到函数)
  • 访问权限
  • 读取、写入、递增、递减
 
  • ucAddressingMode – 指定地址模式。 此参数的可能值为 BLOCK_ADDRESS_MODE (0x00) 或 SECTOR_ADDRESS_MODE (0x01)。 如果发送任何其他值,该函数将返回错误代码WRONG_ADDRESS_MODE
  • ucAddress – 扇区或扇区拖车块地址,具体取决于 ucAddressingMode。 当使用扇区地址模式时,例如MIFARE经典® 1K,范围可以是0到15(有16个扇区)。 块寻址模式下的相同类型可以使用 0 到 63 之间的值,前提是如果寻址块不是扇区尾部,则会发生错误。
  • aucNewKeyA – 指向 6 字节数组的指针,该数组表示指定扇区的新 A 键,如果以前允许具有访问权限,则将设置该键
  • aucNewKeyB – 指向六字节数组的指针,该数组表示指定扇区的新 B 键,如果以前允许访问权限,则将设置该键
  • ucBlock0AccessBits – 扇区 0 块的访问值。

MIFARE® 4k对最后8个扇区有不同的组织,地址空间的后半部分。 因此,在这些扇区中,访问权限设置如下:

  • 对前 5 个块的访问权限 – ucBlock1AccessBits 第一个扇区的访问值块
  • 对后 5 个块的访问权限 – ucBlock2AccessBits 第一个扇区的访问值块
  • 对最后 5 个区块的访问权限:
    • ucSectorTrailerAccessBits – 扇区拖车的访问值
    • ucSectorTrailerByte9 – 第九扇区拖车字节是通用字节,可以输入任何单字节值
    • ucAuthMode – 此参数定义是使用密钥 A 还是密钥 B 执行身份验证。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)
    • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,这适用于写入的所有扇区
    • aucProvideKey – 指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。 函数名称中的_PK后缀表示此方法用法。

扇区拖车写入不安全, SectorTrailerWriteUnsafe_AKM1, SectorTrailerWriteUnsafe_AKM2, SectorTrailerWriteUnsafe_PK

这些函数与 SectorTrailerWrite 组的功能具有相同的目的,但在发送“原始”扇区拖车内容方面有所不同,并且在格式化要输入的访问位值时可能会出现错误。 这些功能适用于具有使用 MIFARE®经验的开发人员。 扇区拖车写入组函数提到的所有规则都适用于这些函数,但扇区拖车条目的“原始”数据选项除外。

  • ucAddressingMode – 指定地址模式。 此参数的可能值为 BLOCK_ADDRESS_MODE (0x00) 或 SECTOR_ADDRESS_MODE (0x01)。 如果发送了任何其他值,则该函数将返回错误代码WRONG_ADDRESS_MODE。
  • ucAddress – 扇区或扇区尾部块地址,具体取决于 ucAddressingMode。

使用扇区地址模式时,在 MIFARE® 1K 的情况下,范围可以是 0 到 15(有 16 个扇区),并且块寻址模式下的相同类型可以使用值 0 到 63,如果寻址块不是扇区尾部,则可能会出现错误。

  • aucSectorTrailer – 指向 6 字节数组的指针,其中包含地址扇区尾部条目的“原始”数据
  • ucAuthMode – 此参数定义是执行身份验证密钥 A 还是密钥 B。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,这适用于写入的所有扇区
  • aucProvideKey – 指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。 函数名称中的_PK后缀表示此方法用法。

用于处理值块的函数

值块表示可选的 MIFARE® 功能。 这实际上是一种模式,其中整个数据块(16 字节)表示一个四字节值。 在此模式下,您可以添加任何数据块(当然,块 0、零扇区和扇区尾部除外)。 值块中的值以特殊方式格式化,除了值记录外,还包含单字节地址值,这使用户能够实现备份系统。

D-Logic RFID 读取器负责正确的值块格式设置,以便用户可以使用仅处理四个字节值的函数集。 应该提到的是,如果在值 1、6 或 0(新卡中的默认值)上设置了对所需块的访问权限,则使用值块是有意义的,这允许它们的值递增和递减。 首先,必须启动值块,值和相关地址必须符合十六字节记录的适当格式。 值块初始化的最佳和最简单的方法是使用一组 Windows API 函数 IS21 ValueBlockWrite 或 ValueBlockInSectorWrite。

ValueBlockRead, ValueBlockRead_AKM1, ValueBlockRead_AKM2, ValueBlockRead_PK

这些函数与 ValueBlockRead 组函数相同,适用于读取值块的 4 字节值。 此外,它们返回存储在值块中的关联地址。 唯一的区别是使用所谓的部门寻址。 扇区寻址是指在一个扇区内分别发送扇区和块地址。 对于 MIFARE®,1K 扇区地址可能在 0 到 15 的范围内,块地址可能在扇区内的 0 到 3 范围内。 对于MIFARE®,4k扇区地址可能在0到39的范围内,并且由于地址空间组织的后半部分不同(大于2MB),最后8个扇区(扇区32到39)中的块地址可能在0到15的范围内。

MIFARE SDK - uFR 高级软件,带有 SDK for MIFARE 卡标签 9

  • lValue – 指向值块返回的长型变量的指针
  • ucValueAddr – 第九扇区尾部字节是通用字节,可以输入任何单字节值
  • ucSectorAddress – Sector Address
  • ucBlockInSectorAddress – 扇区中的块地址
  • ucAuthMode – 此参数定义是执行身份验证密钥 A 还是密钥 B。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)
  • ucReaderKeyIndex – e默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID阅读器中选择的密钥索引来执行真实性证明。 在线性地址模式下,它适用于所有扇区进行写入
  • aucGivenKey – 指向六字节数组的指针,该数组包含用于验证“提供的密钥”方法的密钥。 _PK函数名称后缀指示此方法的使用。
 

ValueBlockInSectorRead, ValueBlockInSectorRead_AKM1, ValueBlockInSectorRead_AKM2, ValueBlockInSectorRead_PK

这些函数与 ValueBlockRead 组函数相同,适用于读取值块的 4 字节值。 此外,它们返回存储在值块中的关联地址。 唯一的区别是使用所谓的部门寻址。 扇区寻址是指在一个扇区内分别发送扇区和块地址。 对于 MIFARE®,1K 扇区地址可能在 0 到 15 的范围内,块地址可能在扇区内的 0 到 3 范围内。 对于MIFARE®,4k扇区地址可能在0到39的范围内,并且由于地址空间组织的后半部分不同(大于2MB),最后8个扇区(扇区32到39)中的块地址可能在0到15的范围内。

MIFARE SDK - uFR 高级软件,带有 MIFARE 卡标签的 SDK 13

  • lValue – 指向值块返回的长型变量的指针
  • ucValueAddr – 指向无符号字符类型变量的指针通过一个字节地址返回,这为备份系统实现提供了额外的功能
  • ucSectorAddress – Sector Address
  • ucBlockInSectorAddress – 扇区中的块地址
  • ucAuthMode – 此参数定义是执行身份验证密钥 A 还是密钥 B。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,它适用于所有扇区进行写入
  • aucGivenKey – 指向六字节数组的指针,该数组包含用于验证“提供的密钥”方法的密钥。 _PK函数名称后缀指示此方法的使用。
 
 

ValueBlockWrite, ValueBlockWrite_AKM1, ValueBlockWrite_AKM2, ValueBlockWrite_PK

这些函数用于初始化和写入第四字节值块值,并将关联的地址存储在值块中。 使用所谓的块寻址的函数(第一个块的地址为0;拖车具有第一个扇区地址3,接下来的7,依此类推,直到MIFARE® 1k的最后一个块,这也是最后一个扇区的拖车,地址为63)。MIFARE SDK - uFR 高级软件,带有 SDK for MIFARE 卡标签 14

  • lvalue – 值块条目的值
  • ucValueAddr – 值块关联地址
  • ucBlockAddress – Block Address
  • ucAuthMode – 此参数定义是使用 A 密钥还是 B 密钥执行身份验证。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)。
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,这适用于写入的所有扇区
  • aucProvideKey – 指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。 函数名称中的_PK后缀表示此方法用法。
 
 

ValueBlockInSectorWrite, ValueBlockInSectorWrite_AKM1, ValueBlockInSectorWrite_AKM2, ValueBlockInSectorWrite_PK

这些函数类似于 ValueBlockWrite 组函数。 它们用于输入,值块 4 字节值初始化。 此外,将关联的地址存储到块值中。 唯一的区别是部门寻址用法。 扇区寻址是指在一个扇区内分别发送扇区和块地址。 对于 MIFARE®,1K 扇区地址可能在 0 到 15 的范围内,块地址可能在扇区内的 0 到 3 范围内。 对于MIFARE®,4k扇区地址可能在0到39的范围内,并且由于地址空间组织的后半部分不同(大于2MB),最后8个扇区(扇区32到39)中的块地址可能在0到15的范围内。MIFARE SDK - uFR 高级软件,带有 MIFARE 卡标签的 SDK 15

  • lvalue – 值块条目的值
  • ucValueAddr – 值块关联地址
  • ucSectorAddress – Sector Address
  • ucBlockInSectorAddress – 扇区的块地址
  • ucAuthMode – 此参数定义是执行身份验证密钥 A 还是密钥 B。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)。
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,它适用于所有扇区进行写入
  • aucGivenKey – 指向六字节数组的指针,该数组包含用于验证“提供的密钥”方法的密钥。 _PK函数名称后缀指示此方法的使用。
 
 

ValueBlockIncrement, ValueBlockIncrement_AKM1, ValueBlockIncrement_AKM2, ValueBlockIncrement_PK

此功能集用于递增值 4 字节值块。 值块增量的值作为这些函数的参数发送。 函数使用块寻址(第一个块的地址为 0;第一个扇区尾部的地址为 3,下一个扇区拖车具有 7,依此类推,直到最后一个 MIFARE® 1K 块(也是最后一个扇区的尾部)的地址为 63)。MIFARE SDK - uFR 高级软件,带有 MIFARE 卡标签的 SDK 16

  • l增量值 – 值块增量的值
  • ucBlockAddress – 扇区中的块地址
  • ucSectorAddress – Sector Address
  • ucAuthMode – 此参数定义是执行身份验证密钥 A 还是密钥 B。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)。
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,它适用于所有扇区进行写入
  • aucGivenKey – 指向六字节数组的指针,该数组包含用于验证“提供的密钥”方法的密钥。 _PK函数名称后缀指示此方法的使用。
 
 

ValueBlockInSectorIncrement, ValueBlockInSectorIncrement_AKM1, ValueBlockInSectorIncrement_AKM2, ValueBlockInSectorIncrement_PK

这些函数与 ValueBlockIncrement 组函数具有相同的用途,用于读取值块的 4 个字节值。 值块增量的值作为这些函数的参数发送。 唯一的区别是部门寻址用法。 扇区寻址是指在一个扇区内分别发送扇区和块地址。 对于 MIFARE®,1K 扇区地址可能在 0 到 15 的范围内,块地址可能在扇区内的 0 到 3 范围内。 对于MIFARE®,4k扇区地址可能在0到39的范围内,并且由于地址空间组织的后半部分不同(大于2MB),最后8个扇区(扇区32到39)中的块地址可能在0到15的范围内。MIFARE SDK - uFR 高级软件,带有 SDK for MIFARE 卡标签 17

  • l增量值 – 值块增量的值
  • ucSectorAddress – Sector Address
  • ucBlockInSectorAddress – 扇区内的块地址
  • ucAuthMode – 此参数定义是执行身份验证密钥 A 还是密钥 B。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)。
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,它适用于所有扇区进行写入
  • aucGivenKey – 指向六字节数组的指针,该数组包含用于验证“提供的密钥”方法的密钥。 _PK函数名称后缀指示此方法的使用。
 
 

价值块递减、ValueBlockDecrement_AKM1、ValueBlockDecrement_AKM2 ValueBlockDecrement_PK

这组函数用于递减值块的 4 字节值。 值块递减的值作为这些函数的参数发送。 函数使用块寻址(第一个块的地址为 0;第一个扇区尾部的地址为 3,下一个扇区拖车具有 7,依此类推,直到最后一个 MIFARE® 1K 块(也是最后一个扇区的尾部)的地址为 63)。MIFARE SDK - uFR 高级软件,带有 MIFARE 卡标签的 SDK 18

  • l递减值 – 值块递减的值
  • ucBlockAddress – 扇区内的块地址
  • ucAuthMode – 此参数定义是执行身份验证密钥 A 还是密钥 B。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)。
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用从 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,它适用于所有扇区进行写入
  • aucGivenKey – 指向六字节数组的指针,该数组包含用于验证“提供的密钥”方法的密钥。 _PK函数名称后缀指示此方法的使用。
 
 

ValueBlockInSectorDecrement, ValueBlockInSectorDecrement_AKM1, ValueBlockInSectorDecrement_AKM2, ValueBlockInSectorDecrement_PK

这些函数的工作方式与 ValueBlockDecrement 组函数相同,并且用于值块 4 字节值递减。 值块递减的值作为参数发送到这些函数。 唯一的区别是部门寻址使用情况。 这包括单独发送扇区地址和扇区内的块地址。 对于 MIFARE®,1K 扇区地址可能在 0 到 15 的范围内,块地址可能在扇区内的 0 到 3 范围内。 对于MIFARE®,4k扇区地址可能在0到39的范围内,并且由于地址空间组织的后半部分不同(大于2 MB),最后8个扇区(扇区32到39)中的块地址可能在0到15的范围内MIFARE SDK - uFR 高级软件与 SDK for MIFARE 卡标签 19

  • l递减值 – 值块递减的值
  • ucSectorAddress – Sector Address
  • ucBlockInSectorAddress – 扇区内的块地址
  • ucAuthMode – 此参数定义是执行身份验证密钥 A 还是密钥 B。 它可以有两个值,即:AUTHENT1A (0x60) 或 AUTHENT1B (0x61)。
  • ucReaderKeyIndex – 默认的身份验证方法(当使用不带后缀的函数时)通过使用 RFID 读取器中选择的密钥索引来执行真实性证明。 在线性地址模式下,它适用于所有扇区进行写入
  • aucGivenKey – 指向六字节数组的指针,该数组包含用于验证“提供的密钥”方法的密钥。 _PK函数名称后缀指示此方法的使用。