我正在创建一个允许我读取不同标签数据的应用程序。我目前正在使用代码Mifare Classic 1k
。
为了验证我的数据读数是否正确,我使用官方应用程序NXP
并发现数据解释存在一些差异。
在我的代码中,我使用ReadBlock
读取每个扇区中的所有块。除了每个扇区的第3个块之外,所有数据都被正确读取。事实上,根据NXP
,它看起来应该是这样的:ffffffffffffff078069ffffffffffff
,但我的应用程序会读取以下块:0000000000000000078069ffffffffffff
。我不知道它是Nxp
的应用程序错误还是什么,但当我读取块时,我使用的函数已经存在并且不是由我创建的。
有人可以给我澄清吗?
答案 0 :(得分:2)
当您读取扇区尾部(即扇区的最后一个块)时,密钥A的内容将始终作为全零返回。当键B被设置为不可读时,它也适用。 (但是,因为您能够读取该块,所以您知道了密钥,因此您可以获得芯片中实际存储的内容。)