在线商店

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

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

Mifare sdk

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

文档和软件下载

线性write_akm1,线性write_akm2线性write_pk

这些函数用于使用线性地址空间的模拟来写入数据。证明真实性的方法由函数名称中的后缀确定:MIFARE SDK - uFR

  • aucData -
  • usLinearAddress -
  • usdatallength -在aucData中,在调用函数之前必须分配最小的usDataLength字节数
  • lpusBytesWrite -“,”,“,”。usDataLength(数据长度)。如果在写入某些块时出错,该函数将返回通过此参数成功写入的字节数。
  • ucAuthKey - A,,。:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,这适用于所有写入的扇区。

线性formatcard_akm1,线性formatcard_akm2,线性formatcard_pk

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

扇区拖车写

此功能组在扇区拖车启动方面提供了更大的灵活性:MIFARE SDK - uFR

  • 【中文翻译】【中文翻译
  • ucBlocksAccessBits -它可以具有值 0 到 7
  • ucSectorTrailersAccessBits - - - - - - - - -它可以具有值 0 到 7
  • ucSectorTrailersByte9 - - - - - - - - - - - - - - - - -它可以具有值 0 到 7
  • aucNewKeyB - 1 - 1 - 6
  • lpucSectorFormatted——指向“无符号字符”类型变量的指针,通过该变量返回成功格式化的扇区尾部的数量。例如。笨笨笨笨,笨笨笨笨®1k,陆基,陆基,陆基,陆基,陆基,陆基,陆基,陆基。如果出现错误,该参数指示从零开始成功初始化的扇区数。
  • ucAuthMode 1 . .:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,这适用于所有写入的扇区。
  • aucGivenKey——指向第六字节字符串的指针,该字符串包含用于在“提供的密钥”方法中证明真实性的密钥。。

用于处理数据块的函数

BlockRead_AKM1, BlockRead_AKM2, BlockRead_PK

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

3 . MIFARE SDK - uFR

  • 。在调用函数之前,必须至少分配 16 个字节。
  • ucBlockAddress - ucAuthMode块地址。“”“”“”“”“”:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,这适用于写入的所有扇区
  • ucSectorTrailersByte9 - - - - - - - - - - - - - - - - -它可以具有值 0 到 7
  • aucProvideKey——指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。。

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

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

  • 。在调用函数之前,必须至少分配 16 个字节
  • ucSector
  • ucBlockInSectorAddress -
  • ucAuthMode——此参数定义是使用一个密钥还是B密钥执行身份验证。:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,这适用于写入的所有扇区
  • aucGivenKey——指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。_pk。

BlockWrite_AKM1, BlockWrite_AKM2, BlockWrite_PK

这些函数用于将数据输入(一次 16 个字节)到块中。函数使用所谓的集团寻址(第一个块的地址为0;第一个扇区拖车的地址为3,下一个扇区拖车有7个,依此类推,直到最后一个非接触式读卡器®1 k块(也是最后一个扇区的尾部)的地址为63)。此功能组不允许直接数据输入扇区尾部。http://www.sectortrailerwrite_sectortrailerwrite_unsafe。

4 . MIFARE SDK - uFR

  • 。在调用函数之前必须至少分配 16 个字节
  • ucBlockAddress -贫乏贫乏
  • ucAuthMode -步步高升步步高升步步高升:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,这适用于所有读取的扇区
  • aucProvideKey——指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。。

FORBIDEN_DIRECT_WRITE_IN_SECTOR_TRAILER。

BlockInSectorWrite, BlockInSectorWrite_AKM1, BlockInSectorWrite_AKM2, BlockInSectorWrite_PK

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

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

FORBIDEN_DIRECT_WRITE_IN_SECTOR_TRAILER。

中文名称:SectorTrailerWrite_AKM1, SectorTrailerWrite_AKM2, SectorTrailerWrite_PK

这些功能用于在扇区拖车中写入数据。。MIFARE SDK - uFR在块寻址的情况下,第一个块的地址为 0;拖车具有第一个扇区地址 3 和下一个扇区地址 7,依此类推。1k、1k、1k、1k、1k、1k、1k、1k、1k、1k、1k、1k、1k、1k、1k、1k、1k。这组函数简化了块访问权限设置(访问位)的位操作,并最大限度地减少了由于这些位的格式不正确而永久阻塞整个扇区的可能性。【中文译文】【中文翻译】:中文翻译:

对于扇区拖车,以下访问权限有效:7 . MIFARE SDK - uFR

  • c1 c2 c3
  • 访问值(提交到函数)
  • 访问权限
  • 一个字密钥节包含访问位和九字节密钥B
  • 阅读和写作

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

* * * * * * * * * * * * * * * * * *如果允许访问权限,这些函数还会设置新的扇区键。

  • c1 c2 c3MIFARE SDK - uFR
  • 访问值(提交到函数)
  • 访问权限
  • 读取、写入、递增、递减
  • ucAddressingMode -。“BLOCK_ADDRESS_MODE (0x00)”或“SECTOR_ADDRESS_MODE (0x01)”。如果发送任何其他值,该函数将返回错误代码WRONG_ADDRESS_MODE
  • ucAddress - mode。中文:中文:中文®1 k,范围可以是0到15(有16个扇区)。块寻址模式下的相同类型可以使用 0 到 63 之间的值,前提是如果寻址块不是扇区尾部,则会发生错误。
  • aucNewKeyA——指向6字节数组的指针,该数组表示指定扇区的新键,如果以前允许具有访问权限,则将设置该键
  • aucNewKeyB——指向六字节数组的指针,该数组表示指定扇区的新B键,如果以前允许访问权限,则将设置该键
  • ucBlock0AccessBits - 0

MIFARE®4k。因此,在这些扇区中,访问权限设置如下:

  • 2 . ucBlock1AccessBits
  • 5 . ucBlock2AccessBits
  • 对最后 5 个区块的访问权限:
    • ucSectorTrailerAccessBits -
    • ucSectorTrailerByte9 - (
    • ucAuthMode -步步高升步步高升步步高升AUTHENT1A (0x60)或AUTHENT1B (0x61)
    • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,这适用于写入的所有扇区
    • aucProvideKey——指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。。

中文名称:sectortrailerwritensafe_akm1, sectortrailerwritensafe_akm2, sectortrailerwritensafe_pk

这些函数与SectorTrailerWrite组的功能具有相同的目的,但在发送“原始“扇区拖车内容方面有所不同,并且在格式化要输入的访问位值时可能会出现错误。【中文译文®经验的开发人员。。

  • ucAddressingMode -。“BLOCK_ADDRESS_MODE (0x00)”或“SECTOR_ADDRESS_MODE (0x01)”。中文名称:wrong_address_mode。
  • ucAddress -。

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

  • aucSectorTrailer——指向6字节数组的指针,其中包含地址扇区尾部条目的“原始”数据
  • ucAuthMode -步步高升步步高升AUTHENT1A (0x60)或AUTHENT1B (0x61)
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,这适用于写入的所有扇区
  • aucProvideKey——指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。。

用于处理值块的函数

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

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

ValueBlockRead, ValueBlockRead_AKM1, ValueBlockRead_AKM2, ValueBlockRead_PK

。此外,它们返回存储在值块中的关联地址。唯一的区别是使用所谓的部门寻址。扇区寻址是指在一个扇区内分别发送扇区和块地址。对于非接触式读卡器®,1 k扇区地址可能在0到15的范围内,块地址可能在扇区内的0到3范围内。对于非接触式读卡器®4 k扇区地址可能在0到39岁的范围内,并且由于地址空间组织的后半部分不同(大于2 mb),最后8个扇区(扇区32到39)中的块地址可能在0到15的范围内。

MIFARE SDK - uFR

  • 1值-整整齐齐
  • ucValueAddr - 01 / 01 / 01 / 01 / 01 / 01 / 01 / 01 / 01 / 01 / 01 / 01 / 01 / 01
  • ucSectorAddress -扇区地址
  • ucBlockInSectorAddress -
  • ucAuthMode -步步高升步步高升AUTHENT1A (0x60)或AUTHENT1B (0x61)
  • ucReaderKeyIndex - e默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID阅读器中选择的密钥索引来执行真实性证明。在线性地址模式下,它适用于所有扇区进行写入
  • 。_pk。

ValueBlockInSectorRead, ValueBlockInSectorRead_AKM1, ValueBlockInSectorRead_AKM2, ValueBlockInSectorRead_PK

。此外,它们返回存储在值块中的关联地址。唯一的区别是使用所谓的部门寻址。扇区寻址是指在一个扇区内分别发送扇区和块地址。对于非接触式读卡器®,1 k扇区地址可能在0到15的范围内,块地址可能在扇区内的0到3范围内。对于非接触式读卡器®4 k扇区地址可能在0到39岁的范围内,并且由于地址空间组织的后半部分不同(大于2 mb),最后8个扇区(扇区32到39)中的块地址可能在0到15的范围内。

MIFARE SDK - uFR

  • 1值-整整齐齐
  • ucValueAddr——指向无符号字符类型变量的指针通过一个字节地址返回,这为备份系统实现提供了额外的功能
  • ucSectorAddress -扇区地址
  • ucBlockInSectorAddress -
  • ucAuthMode -步步高升步步高升AUTHENT1A (0x60)或AUTHENT1B (0x61)
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,它适用于所有扇区进行写入
  • 。_pk。

ValueBlockWrite, ValueBlockWrite_AKM1, ValueBlockWrite_AKM2, ValueBlockWrite_PK

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

  • 左值-从零开始
  • ucValueAddr - huawei / huawei / huawei / huawei
  • ucBlockAddress -块地址
  • ucAuthMode——此参数定义是使用一个密钥还是B密钥执行身份验证。:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,这适用于写入的所有扇区
  • aucProvideKey——指向第六字节数组的指针,该数组包含用于在“提供的密钥”方法中证明真实性的密钥。。

ValueBlockInSectorWrite, ValueBlockInSectorWrite_AKM1, ValueBlockInSectorWrite_AKM2, ValueBlockInSectorWrite_PK

。它们用于输入,值块 4 字节值初始化。此外,将关联的地址存储到块值中。唯一的区别是部门寻址用法。扇区寻址是指在一个扇区内分别发送扇区和块地址。对于非接触式读卡器®,1 k扇区地址可能在0到15的范围内,块地址可能在扇区内的0到3范围内。对于非接触式读卡器®4 k扇区地址可能在0到39岁的范围内,并且由于地址空间组织的后半部分不同(大于2 mb),最后8个扇区(扇区32到39)中的块地址可能在0到15的范围内。MIFARE SDK - uFR

  • 左值-从零开始
  • ucValueAddr - huawei / huawei / huawei / huawei
  • ucSectorAddress -扇区地址
  • ucBlockInSectorAddress -
  • ucAuthMode -步步高升步步高升:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,它适用于所有扇区进行写入
  • 。_pk。

ValueBlockIncrement, ValueBlockIncrement_AKM1, ValueBlockIncrement_AKM2, ValueBlockIncrement_PK

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

  • 我很高兴见到你
  • ucBlockAddress -
  • ucSectorAddress -扇区地址
  • ucAuthMode -步步高升步步高升:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,它适用于所有扇区进行写入
  • 。_pk。

ValueBlockInSectorIncrement, ValueBlockInSectorIncrement_AKM1, ValueBlockInSectorIncrement_AKM2, ValueBlockInSectorIncrement_PK

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

  • 我很高兴见到你
  • ucSectorAddress -扇区地址
  • ucBlockInSectorAddress -
  • ucAuthMode -步步高升步步高升:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,它适用于所有扇区进行写入
  • 。_pk。

ValueBlockDecrement_AKM1, ValueBlockDecrement_AKM2 ValueBlockDecrement_PK

这组函数用于递减值块的 4 字节值。值块递减的值作为这些函数的参数发送。函数使用块寻址(第一个块的地址为0;第一个扇区尾部的地址为3,下一个扇区拖车具有7,依此类推,直到最后一个非接触式读卡器®1 k块(也是最后一个扇区的尾部)的地址为63)。MIFARE SDK - uFR

  • 李彦宏:我是李彦宏
  • ucBlockAddress -
  • ucAuthMode -步步高升步步高升:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用从RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,它适用于所有扇区进行写入
  • 。_pk。

ValueBlockInSectorDecrement_AKM1, ValueBlockInSectorDecrement_AKM2, ValueBlockInSectorDecrement_PK

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

  • 李彦宏:我是李彦宏
  • ucSectorAddress -扇区地址
  • ucBlockInSectorAddress -
  • ucAuthMode -步步高升步步高升:AUTHENT1A (0x60)或AUTHENT1B (0x61)。
  • ucReaderKeyIndex——默认的身份验证方法(当使用不带后缀的函数时)通过使用RFID读取器中选择的密钥索引来执行真实性证明。在线性地址模式下,它适用于所有扇区进行写入
  • 。_pk。
Baidu
map