在线商店

MIFARE®卡编程-µFR高级软件SDK

高级MIFARE®卡读写源代码软件示例

MIFARE SDK支持以下编程语言

  • Java(包括Applet),
  • JavaScript,
  • 拉撒路,
  • Borland Delphi,
  • c++ Builder,
  • Microsoft®Visual c++ .NET
  • Microsoft®Visual c# .NET
  • Microsoft®Visual Basic .NET

文档和软件下载

LinearWrite, LinearWrite_AKM1, LinearWrite_AKM2, LinearWrite_PK

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

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

线性formatcard,线性formatcard_akm1,线性formatcard_akm2,线性formatcard_pk

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

SectorTrailerWrite

该功能组为扇区拖车启动提供了更大的灵活性:MIFARE SDK - uFR高级软件与SDK为MIFARE卡标签2

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

处理数据块的函数

BlockRead, BlockRead_AKM1, BlockRead_AKM2, BlockRead_PK

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

MIFARE SDK - uFR高级软件与SDK为MIFARE卡标签3

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

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

这些函数可以读取扇区预告片内容(它的可用部分,取决于访问权限集)。

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

BlockWrite, BlockWrite_AKM1, BlockWrite_AKM2, BlockWrite_PK

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

MIFARE SDK - uFR高级软件与SDK为MIFARE卡标签

  • aucData -指向读取数据存储的字节数的指针。在调用函数之前必须分配至少16个字节
  • ucBlockAddress -卡块地址
  • ucAuthMode -定义使用密钥A或密钥b进行认证。取值为AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex—默认的身份验证方法(当使用不带后缀的函数时)通过使用从RFID阅读器中选择的密钥索引来执行真实性证明。在线性地址模式下,这适用于读取的所有扇区
  • aucProvidedKey -指向第六个字节数组的指针,其中包含在“提供的密钥”方法中用于真实性证明的密钥。_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的范围内。此功能组不允许直接将数据输入扇区拖车。为此,请使用特殊函数SectorTrailerWrite和SectorTrailerWriteUnsafeMIFARE SDK - uFR高级软件与SDK为MIFARE卡标签

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

FORBIDEN_DIRECT_WRITE_IN_SECTOR_TRAILER。

SectorTrailerWrite, SectorTrailerWrite_AKM1, SectorTrailerWrite_AKM2, SectorTrailerWrite_PK

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

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

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

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

*如果对一个适当扇区的扇区尾部的访问权限设置为可以读取b Key,则在任何情况下都不能用于身份验证。如果允许访问权限,这些函数还可以设置新的扇区键。

  • 访问位C1 C2 C3MIFARE SDK - uFR高级软件与SDK为MIFARE卡标签
  • 访问值(提交给函数)
  • 访问权限
  • 读,写,自增,自减
  • ucAddressingMode -指定地址模式。取值为BLOCK_ADDRESS_MODE (0x00)或SECTOR_ADDRESS_MODE (0x01)。如果发送任何其他值,该函数将返回错误码WRONG_ADDRESS_MODE
  • ucAddress -扇区或扇区拖车块地址,取决于ucAddressingMode。当使用扇区地址模式时,那么,例如,MIFARE Classic®1K,范围为0 ~ 15(有16个扇区)。块寻址模式中的相同类型可以使用0到63的值,前提是如果寻址块不是扇区尾盘,则会发生错误。
  • aucNewKeyA -指向6字节数组的指针,该数组表示指定扇区的新a键,如果先前允许访问权限,该键将被设置
  • aucNewKeyB -指向六字节数组的指针,表示指定扇区的新B键,如果先前允许访问权限,则将设置该B键
  • ucBlock0AccessBits -扇区0块的访问值。

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

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

SectorTrailerWriteUnsafe, sectortrailerwritensafe_akm1, sectortrailerwritensafe_akm2, sectortrailerwritensafe_pk

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

  • 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阅读器中选择的密钥索引来执行真实性证明。在线性地址模式下,这适用于所有写入的扇区
  • aucProvidedKey -指向第六个字节数组的指针,其中包含在“提供的密钥”方法中用于真实性证明的密钥。_PK函数名中的后缀表示该方法的用法。

用于处理值块的函数

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

D-Logic RFID读取器负责正确的值块格式,因此用户可以使用仅处理四个字节值的函数集。应该提到的是,如果对所需块的访问权限设置为1,6或0(新卡的默认值),允许其值递增和递减,则值块的使用是有意义的。首先,值块必须初始化,值和关联地址必须符合适当的16字节记录格式。值块初始化的最好和最简单的方法是使用一组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为MIFARE卡标签9

  • lValue -指向值块返回的长类型变量的指针
  • ucValueAddr -第9个扇区尾字节是一个通用的字节,可以输入任何单字节值
  • ucSectorAddress -扇区地址
  • ucBlockInSectorAddress -扇区块地址
  • ucAuthMode -该参数定义验证密钥是A还是b。有两种取值:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex—默认的身份验证方法(当使用不带后缀的函数时)通过使用从RFID阅读器中选择的密钥索引来执行真实性证明。在线性地址模式下,适用于所有扇区的写入
  • aucProvidedKey -指向六字节数组的指针,该数组包含用于“提供的密钥”方法验证的密钥。_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高级软件与SDK为MIFARE卡标签13

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

ValueBlockWrite, ValueBlockWrite_AKM1, ValueBlockWrite_AKM2, ValueBlockWrite_PK

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

  • lValue -值块表项的值
  • ucValueAddr -值块关联地址
  • ucBlockAddress -块地址
  • ucAuthMode -使用A密钥认证还是使用B密钥认证。它可以有两个值,即AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex—默认的身份验证方法(当使用不带后缀的函数时)通过使用从RFID阅读器中选择的密钥索引来执行真实性证明。在线性地址模式下,这适用于所有写入的扇区
  • aucProvidedKey -指向第六个字节数组的指针,其中包含在“提供的密钥”方法中用于真实性证明的密钥。_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高级软件与SDK为MIFARE卡标签15

  • lValue -值块表项的值
  • ucValueAddr -值块关联地址
  • ucSectorAddress -扇区地址
  • ucBlockInSectorAddress -扇区块地址
  • ucAuthMode -定义验证密钥A还是验证密钥b。有两种取值:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex—默认的身份验证方法(当使用不带后缀的函数时)通过使用从RFID阅读器中选择的密钥索引来执行真实性证明。在线性地址模式下,适用于所有扇区的写入
  • aucProvidedKey -指向六字节数组的指针,该数组包含用于“提供的密钥”方法验证的密钥。_PK函数名后缀表示使用该方法。

ValueBlockIncrement, ValueBlockIncrement_AKM1, ValueBlockIncrement_AKM2, ValueBlockIncrement_PK

该特性集用于增加4字节值块的值。值块增量的值作为这些函数的参数发送。函数使用块寻址(第一个块的地址为0;第一个扇区预告片的地址为3,下一个为7,以此类推,直到最后一个MIFARE®1K块(也是最后一个扇区的预告片,地址为63)。MIFARE SDK - uFR高级软件与SDK为MIFARE卡标签16

  • lIncrementValue -值块增量的值
  • ucBlockAddress -块地址
  • ucSectorAddress -扇区地址
  • ucAuthMode -定义验证密钥A还是验证密钥b。有两种取值:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex—默认的身份验证方法(当使用不带后缀的函数时)通过使用从RFID阅读器中选择的密钥索引来执行真实性证明。在线性地址模式下,适用于所有扇区的写入
  • aucProvidedKey -指向六字节数组的指针,该数组包含用于“提供的密钥”方法验证的密钥。_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为MIFARE卡标签17

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

ValueBlockDecrement_AKM1, ValueBlockDecrement_AKM2, ValueBlockDecrement_PK

这组函数用于减少值块的4字节值。值块减量的值作为这些函数的参数发送。函数使用块寻址(第一个块的地址为0;第一个扇区预告片的地址为3,下一个为7,以此类推,直到最后一个MIFARE®1K块(也是最后一个扇区的预告片,地址为63)。MIFARE SDK - uFR高级软件与SDK为MIFARE卡标签18

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

ValueBlockInSectorDecrement_AKM1, ValueBlockInSectorDecrement_AKM2, ValueBlockInSectorDecrement_PK

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

  • lDecrementValue -值块递减的值
  • ucSectorAddress -扇区地址
  • ucBlockInSectorAddress -一个扇区内的块地址
  • ucAuthMode -定义验证密钥A还是验证密钥b。有两种取值:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex—默认的身份验证方法(当使用不带后缀的函数时)通过使用从RFID阅读器中选择的密钥索引来执行真实性证明。在线性地址模式下,适用于所有扇区的写入
  • aucProvidedKey -指向六字节数组的指针,该数组包含用于“提供的密钥”方法验证的密钥。_PK函数名后缀表示使用该方法。
Baidu
map