【问题标题】:Mifare card memory space?Mifare卡内存空间?
【发布时间】:2014-12-08 05:12:09
【问题描述】:

考虑到密钥和访问位每个扇区占用 16 个字节,并且每个卡的唯一 ID (UID) 和制造商数据占用 16 个字节,MIFARE Classic 1K 卡中剩余的净内存空间是多少?

【问题讨论】:

  • 真的没人吗?至少指导我在哪里找到答案!

标签: rfid mifare contactless-smartcard


【解决方案1】:

MIFARE Classic 1K 由 16 个扇区组成。一个扇区由 4 个块组成(扇区尾部 + 3 个数据块)。每个块由 16 个字节组成。

这给出了16 Sectors * 4 Blocks * 16 Bytes = 1024 Bytes

实际可用的数据区取决于你想如何使用卡:

  1. 每个扇区只使用一个密钥(密钥 A);您使用扇区尾部未使用的部分进行数据存储;您不使用 MIFARE 应用程序目录 (MAD):

    • 第一个扇区的第一个块始终保留(UID/制造商数据),不能用于存储用户数据。
    • 每个扇区尾部的 6 个字节为密钥 A 保留。每个扇区尾部的 3 个字节为访问条件保留。扇区尾部的剩余 7 个字节可用于存储用户数据。

    因此,您可以存储1 Sector * (2 Blocks * 16 Bytes + 1 Block * 7 Bytes) + 15 Blocks * (3 Blocks * 16 Bytes + 1 Block * 7 Bytes) = 864 Bytes

  2. 每个扇区使用两个密钥(密钥 A 和密钥 B);您使用扇区尾部未使用的部分进行数据存储;您不使用 MIFARE 应用程序目录 (MAD):

    • 每个扇区尾的 12 个字节为密钥 A 和 B 保留。每个扇区尾的 3 个字节为访问条件保留。扇区尾部的剩余字节可用于存储用户数据。

    因此,您可以存储1 Sector * (2 Blocks * 16 Bytes + 1 Block * 1 Byte) + 15 Blocks * (3 Blocks * 16 Bytes + 1 Block * 1 Byte) = 768 Bytes

  3. 每个扇区使用两个密钥(密钥 A 和密钥 B);您不使用扇区尾部未使用的部分进行数据存储;您不使用 MIFARE 应用程序目录 (MAD):

    因此,您可以存储1 Sector * 2 Blocks * 16 Bytes + 15 Blocks * 3 Blocks * 16 Bytes = 752 Bytes

  4. 每个扇区使用两个密钥(密钥 A 和密钥 B);您使用扇区尾部未使用的部分进行数据存储;您使用 MIFARE 应用程序目录 (MAD):

    • 第一个扇区的数据块和通用字节(扇区尾中的剩余字节)为 MAD 保留。
    • 可以使用其他扇区中的通用字节。

    因此,您可以存储15 Blocks * (3 Blocks * 16 Bytes + 1 Block * 1 Byte) = 735 Bytes

  5. 每个扇区使用两个密钥(密钥 A 和密钥 B);您使用 NXP 的 NDEF 数据映射来传输 NDEF 消息:

    • MAD 用于将扇区分配给 NDEF 应用程序。
    • NDEF 数据只能存储在每个 NDEF 扇区的 3 个数据块中。
    • NDEF 消息被包装在一个 NDEF TLV 结构中(1 个字节用于标记 0x03,三个字节表示长度超过 254 个字节)。

    因此,您最多可以存储15 Blocks * 3 Blocks * 16 Bytes - 4 bytes = 716 Bytes 的NDEF 消息。此类 NDEF 消息的最大有效负载为 716 Bytes - 1 Byte - 1 Byte - 4 Bytes = 710 Bytes(当使用 TNF 未知的 NDEF 记录时,1 个标头字节,1 个类型长度字节,4 个有效负载长度字节)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多