如果我已经有了钥匙,我想从 mifare classic 中读取第 8 扇区。
从这里的文档authenticateSectorWithKeyA (int sectorIndex, byte[] key)
失败的身份验证尝试会导致与标签的隐式重新连接,因此对其他扇区的身份验证将丢失。
听起来我必须对所有部门进行身份验证?是否有可能我只对扇区 8 进行身份验证并仅从该扇区获取数据?
你应该重新连接读卡器,然后选择卡标签SN,登录到扇区0以外的扇区,如果程序得到返回码0/成功,那么你可以按块读取/写入数据(16字节/块)。否则它会拒绝 R/W 操作,您需要重新开始。
是的,首先使用 authenticateSectorWithKeyA() 进行身份验证(如果您有密钥 A,否则将authenticateSectorWithKeyB()与密钥 B 一起使用)。如果返回 false,则身份验证失败(您的密钥不正确)。
成功后,您可以使用readBlock()读取数据(为方便起见,您可以使用sectorToBlock()将扇区索引转换为块索引)
不要担心认证失败:它不会影响您的卡的操作。
不,您只需要验证您正在读取的扇区。但是,如果您尝试验证另一个扇区并失败,则必须重新验证已成功连接的扇区。