2014-07-14 2 views
-1

NFC 태그 (Mifare Ultralight C)로 작업하고 있지만 인증에 문제가 있습니다.Mifare Ultralight C 인증

42 페이지에서 올바르게 이해한다면 제한된 페이지에 대한 정보 여야합니다. 가치가 4d83460이므로 페이지 4+에 인증이 필요합니까?

페이지에서 값은 4a402b80입니다. 왜 그런 가치가 있으며 그 의미는 무엇입니까?

4-40 페이지에 쓰고 읽을 수 있지만 41 페이지를 쓰려고하면 아무 일도 일어나지 않습니다.

편집 :

MifareUltralight mifare = MifareUltralight.get(tag); 
     if(mifare == null){ 
      Log.e(LOG, "mifare null"); 
     } else { 
      Log.e(LOG, "mifare not null"); 
      switch(mifare.getType()){ 
      case MifareUltralight.TYPE_ULTRALIGHT: 
       Log.e(LOG, "ultralight"); 
       break; 
      case MifareUltralight.TYPE_ULTRALIGHT_C: 
       Log.e(LOG, "ultralight c"); 
       break; 
      case MifareUltralight.TYPE_UNKNOWN: 
       Log.e(LOG, "type unknown"); 
       break; 
      } 
     } 


     try { 
      mifare.connect(); 
      mifare.writePage(39, new byte[]{0x10, 0x02, 0x02, 0x02}); 

      Log.e(LOG, "read"); 

      byte[] resp = mifare.readPages(40); 

      for(byte b : resp){ 
       Log.e(LOG, "resp: " + b); 
      } 



      mifare.close(); 
     } catch (IOException e1) { 
      e1.printStackTrace(); 
     } 
+0

페이지 42와 43에서이 값을 실제로 읽었는지 다시 한번 확인 했습니까? 페이지 0과 1을 읽고 UID 태그와 비교하여 독서가 작동하는지 확인 했습니까? 글쓰기에 관해서 : 자물쇠 비트의 상태는 무엇입니까? –

+0

@MichaelRoland 예 42 페이지와 43 페이지에서 확인했습니다. 독서는 정상적으로 작동하며 NFC TagInfo 앱을 사용하여 확인했습니다. 페이지 2 (잠금 비트)는 6f48000이므로 문제가되지 않습니다. 페이지 40은 8000000이므로 문제는 아닙니다. –

+0

태그에서 값을 읽는 방법을 보여줄 수 있습니까? –

답변

2

태그는 MIFARE 초경량 C 태그 될 것 같지 않습니다. 대신 42 페이지짜리 태그 인 것 같습니다 (예 : NTAG203).

첫 번째 표시는 42 페이지에서 읽은 값입니다. 04d83460. 이것은 BCC0을 포함한 UID의 시작과 같습니다. 0x04는 NXP의 제조업체 ID와 유사합니다. 또한 값 0x600x88 (캐스케이드 태그)의 유효한 BCC0입니다. XOR 0x04 XOR 0xD8 XOR 0x34. 당신은 40 페이지 만약부터 네 페이지를 읽을이 줄

byte[] resp = mifare.readPages(40); 

: 따라서이 이것에 대한 두 번째 표시하면 해당 페이지를 읽는 방법 방법입니다 0

페이지의 유효한 값이 될 수 메모리 영역이 44 페이지보다 작은 경우이 명령은 메모리 영역의 시작 부분으로 롤오버됩니다. 따라서 메모리 영역이 42 페이지로 구성된 경우이 명령은 40, 41, 0 및 1 페이지를 반환합니다. 따라서 42 및 43 페이지로 해석하는 내용은 실제로 페이지 0과 1입니다.

유일하게 이상한 점 당신의 페이지 2에는 6f480000 값이 들어 있습니다. 페이지 1 4a402b80 (나머지 UID)를 포함한다면, 페이지 2 (BCC1)의 첫 번째 바이트는 XOR 0x4A0x40 XOR 0x2B XOR 0x80 = 0xA1하지0x6F이어야한다.

관련 문제