我使用Android APP(NXP的NFC标签信息)来读取我的MIFARE Ultraglith C标签,它显示标签有NXP默认密钥“BREAKMEIFYOUCAN!”在页面0x2C到0x2F。但我仍然无法使用此密钥验证此标记。
// NXP default key: BREAKMEIFYOUCAN! (16 bytes)
byte[] mifareULCDefaultKey = { (byte) 0x49, (byte) 0x45,
(byte) 0x4D, (byte) 0x4B, (byte) 0x41, (byte) 0x45,
(byte) 0x52, (byte) 0x42, (byte) 0x21, (byte) 0x4E,
(byte) 0x41, (byte) 0x43, (byte) 0x55, (byte) 0x4F,
(byte) 0x59, (byte) 0x46 };
详细说明,我得到了以下结果:
第一个认证命令:1A00
第一验证命令的响应:AFCCF489BFB7B98605
ek(RndB):CCF489BFB7B98605
IV 1:0000000000000000
RndB:6183511C5B7EF046
RndA:6E262630E299F94F
RndB':83511C5B7EF04661
RndA || RndB':6E262630E299F94F83511C5B7EF04661
IV 2:CCF489BFB7B98605
ek(RndA || RndB'):AB7AF6C6E76675F52B9FF40021A8E2D6
第二验证命令:AFAB7AF6C6E76675F52B9FF40021A8E2D6
但是在发送第二个身份验证命令后,我仍然遇到“Transceive failed”IOException。在发送第二个验证命令之前,我确定标签仍然连接。
我在这个问题上花费了8个多小时,但仍然无法继续前进。任何人都可以提供帮助吗?
答案 0 :(得分:0)
我遇到了同样的问题。问题是您使用了错误的Diversified Key进行身份验证。