2017-01-31 16 views
1

現在、私は、NFCを搭載したWindows 10の電話機を使用して、スマートカードのUID /シリアル番号を読み取り、人。 UID /シリアル番号を取得しようとしているカードは、NXP MIFARE DESFire EV1です。私が探しているIDはカードに印刷されていて、私はAndroidアプリで私の友人の携帯電話を使ってアクセスすることができました。NXP MIFARE DESFire EV1カードのUID /シリアル番号を取得する

カードにAPDUコマンドを送信できますが、私が探しているUID /シリアル番号を取得するためにどのカードを使用するのかわかりません。

IDを取得するためにどのAPDUコマンドをカードに送信する必要がありますか?私が探しているIDは7バイトです。

+0

申し訳ありませんが、非スマートカードの読み取りは、読者の翻訳サービスに強く依存しており、あなたはそのカードに言及していません。 [この質問](http://stackoverflow.com/q/12174000/1435475)に出発点があります。 – guidot

答えて

1

一般的に、非接触カードの衝突防止識別子(UID)などの検索パラメータは、リーダとアプリケーションとの間の抽象層に大きく依存します。たとえば、AndroidではNFCタグ/非接触スマートカードの衝突防止識別子を取得する簡単な方法getId()があります。

しかし、MIFARE DESFireでは、APDUを使用してそのパラメータを取得する方法もあります。あなたは、単にバージョン情報(ともカードUID)を照会するには、GET VERSIONコマンドを送信することができます

 
C-APDU: 90 60 0000 00 
R-APDU: 04 01 YY 01 00 ZZ 05 91AF 

C-APDU: 90 AF 0000 00 
R-APDU: 04 01 01 01 04 ZZ 05 91AF 

C-APDU: 90 AF 0000 00 
R-APDU: XXXXXXXXXXXXXX UUUUUUUUUU VV WW 9100 

カードがランダムな衝突防止識別子である場合、値XXXXXXXXXXXXXXは、カードのUID(またはすべてゼロでありますモード)。

MIFARE DESFireのバージョン情報here(コメントにはThomasRSが指摘されています)のパーサーが存在することに注意してください。

+1

完全に動作します。あなたの貴重な時間ありがとうございました。あなたは私にとって、これがどんな人になるのか、どんなに役に立つのか分かりません。私は決してあなたを忘れることはありません – ZakFS

+2

パーサー:https://github.com/skjolber/external-nfc-api/blob/master/externalNFCClient/src/main/java/com/skjolberg/nfc/desfire/VersionInfo.java – ThomasRS

関連する問題