lcs*_*tto 1 authentication android nfc mifare ndef
我使用ACR 1255U-J1作为通过蓝牙连接的外部阅读器.我用来访问阅读器的库是acsbt-1.0.0preview7.我使用以下命令对MIFARE Classic标记的扇区1(块4)进行身份验证:
FF 82 0000 06 FFFFFFFFFFFF FF 86 0000 05 01 00 04 60 00
当我对空的MIFARE Classic标签进行身份验证(使用制造商默认配置)时,我会收到响应状态字9000.这表明身份验证成功.
但是,当我尝试对已格式化为用作NDEF标记的MIFARE Classic标记进行身份验证时,返回的状态字为6300.
标签格式之间是否存在差异以进行身份验证?
状态字6300表示身份验证失败.因此,您最有可能使用错误的密钥进行身份验证.
您当前尝试使用密钥A(0x60)进行身份验证,其中键值FFFFFFFFFFFF为扇区1(0x04因为它从块4开始).
当MIFARE Classic标记被格式化用作NDEF标记时,将使用NXP在以下数据表中定义的专有NDEF映射规范:
NDEF映射将访问键更改为明确定义的值:
MAD扇区0(以及4K卡上的扇区16):
A0A1A2A3A4A5.FFFFFFFFFFFF.NDEF扇区(在MAD中声明,在1..15范围内(在4K卡上为17..39)):
D3F7D3F7D3F7.FFFFFFFFFFFF.其他扇区(在MAD中声明,在1..15范围内(和4K卡上17..39))不用于NDEF映射:
因此,当标记使用NDEF映射并尝试对第一个NDEF扇区进行身份验证时,您需要使用NDEF密钥A D3F7D3F7D3F7来代替:
FF 82 0000 06 D3F7D3F7D3F7 FF 86 0000 05 01 00 04 60 00
请注意,根据访问位的配置,您可能只能使用密钥A进行读访问.