WinSCardでMiFareカードのシリアル番号を読む必要があります。 MiFareカードから7B UIDを読み取ることができます。
混乱しているのは、MiFareカードのUIDとシリアル番号が同じかどうかわからないということです。
私は問題をグーグルで調べましたが、部分的にしか成功しませんでした。私も question をstackoverflowで見つけましたが、役に立ちませんでした。
オンラインでNXPの ドキュメント が見つかりました。これは、UIDとシリアル番号が異なると言っています。 (ページ番号3、行番号5)
カードのシリアル番号を読み取るOmniKeyのアプリケーションがあり、UIDのみを返します。
NXPのドキュメントにはUID <>シリアル番号と記載されており、他の標準的なOmniKeyアプリケーションはUIDをシリアル番号として返します。
私はこの問題で髪を脱ぎ始めました。誰かが助けてくれれば幸いです。
各スマートカードには、製造プロセス中に焼き付けられた一意の永続的識別(UID)番号を備えた統合チップが含まれています。 このUIDは多くの場合、カードシリアル番号(CSN)と呼ばれます。カードのシリアル番号は暗号化されておらず、ISOに準拠しているリーダーはカードのシリアル番号を読み取ることができます。
編集1:
Mifareカードのシリアル番号は、ISO 14443-3Aで定義されている一意の識別子です。標準で定義されているUIDには、シングル(4バイト)、ダブル(7バイト)、トリプル(10バイト)の3つのタイプがあります。 Mifareカードの最初のバージョンでのみ、UIDは4バイトでしたが、現在は7バイトに移行しています。
編集2:参考になるかもしれません...
What is the difference between a 4 byte UID and a 4 byte ID?
4バイトのUIDは、制御されたデータベースを使用してカードの製造元によって割り当てられた識別子です。このデータベースは、単一の識別子が2回使用されないようにします。これとは対照的に、4バイトのIDは、製品の製造時に複数の非接触チップに割り当てられる識別子であり、同じIDを持つ複数のカードを1つの特定の非接触システムに配備できます。
この場合の違いは、「シリアル番号」が番号がシリーズであり、したがって連続して割り当てられることを意味するという事実に由来します。
MIFAREカードには一意の識別番号(または略してUID)があり、必ずしも連続的ではない内部ルールによって生成されます。つまり、UID 01020304050607のカードが表示されても、これまでに作成されたカードが少なくともその数だけあるということではありません。
カードのシリアル番号に言及している人を見かけた場合、彼らは実際にはUIDに言及している。
最後の唯一の混乱は、MIFAREカードがアクティベーション中にランダムIDを返すように構成できるという事実に起因する可能性があります。その場合、カードをアクティブ化するたびに異なる「UID」を取得します。そのシナリオでは、カードの実際のUIDを取得するために、ブロック0(セクター0のキーを知る必要がある)に含まれるデータを読み取る必要があります。
DesFireカードの場合: