タイトルの通りなんですが、ICカードリーダーでは一番有名なんじゃないかと思う、
SONYのPasori RC-S380で初めてMIFARE Classicを読み書きしようとしてハマりました。
![]() | SONY 非接触ICカードリーダーライター P RC-S380 0円 Amazon |
いわゆる「黒パソリ」と呼ばれたりするこのリーダーですが、
FeliCaだけでなく、Mifareカードも読み書きできます。
そのあたりは、SDK for NFC Starter Kit付属の資料にPC/SC準拠コマンドについて記載があります。
・Sony SDK for NFC Starter Kit
https://www.sony.co.jp/Products/felica/business/products/ICS-D004_002_003.html
ちょっと探すのが分かりにくいんですが。
で、本題ですがその資料にのっとってMifareカードを読み取ります。
まず、UID取得はいつものコマンドでOK。(FFCA0000かな)
そして、データ読み出しですが、Mifare Classicはキー認証が必要なため、
1.Load Keyコマンド
2.Authenticateコマンド
3.Read Binaryコマンド
という手順になりますが、このAuthenticateコマンド認証でなぜか正常(0x90、0x00)ではなく、0x69、0x83が返ってくる・・・
PC/SCコマンドの仕様書も見ましたが、あっているはず。キーはキーAを使っています。
そこでなんとなしにLoad KeyコマンドのKeyType指定を0x00で送ったら、いけた!
うーむ、KeyTypeはキーAかキーBかどちらかを指定しなさいとあるんですが、
0x00にするとうまくいきます。
根本原因は分かりませんが、同じ事で悩まれる方の助けになれば幸いです。
書込みも同様にこれでいけました。
開発環境:Visual Studio 2008
言語:C++とC#とVB.net
カードはこんな感じのMifare Classic 1Kです。
![]() | マイフェア ICカード (Mifare 1K, マイフェアスタンダード) 業務用, T1-C1 3,000円 Amazon |
![]() | NFC Hacks ―プロが教えるテクニック & ツール 3,456円 Amazon |