Mifare卡内存空间?

时间:2014-10-13 15:17:18

标签: rfid mifare contactless-smartcard

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

1 个答案:

答案 0 :(得分:6)

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);您使用恩智浦的NDEF数据映射来传输NDEF消息:

    • MAD用于将扇区分配给NDEF应用程序。
    • NDEF数据只能存储在每个NDEF扇区的3个数据块中。
    • NDEF消息包含在NDEF TLV结构中(标记0x03为1个字节,3个字节表示长度超过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个有效载荷长度字节时)。