Mifare卡内存空间?

Far*_*ris 0 rfid mifare contactless-smartcard

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

Mic*_*and 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个字节).

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