- 勤怠管理 バイバイ タイムカード HOME
- ブログ
- ICカードの製造番号 (FeliCa・IDm/MIFARE・UID)
先日、MIFAREという種類のICカードのUID(製造番号のようなもの)について、どうしても話がかみ合わないことがありました。
色々確認していくと、結局、「同じ情報を違う形で見ていた」という結論だったという話です。
あるお客さんで、バイバイ タイムカードをICカード打刻で利用してもらうことになりました。
そこで、このお客さんがICカードを購入した会社の人に、提供済みのICカードのUIDリストの提供をお願いしたところ、「cc33bb22aa11」(※)といったようなコードが連絡されました。
でも、期待していたのは「19422424806348」(※)といったようなコードだったので、「あの・・・、お送り頂いたのどのようなコードでしょうか?UIDを頂きたいのですが・・・」という連絡をしたところ、「え、UIDを送ったじゃないですか」という話に。
???となり、よくよく数字を見てみると・・・
「19422424806348」を16進数にして、2桁ずつ後から並べ替えると「cc33bb22aa11」になることが分かりました。
-----
19422424806348
→<16進数化>→11aa22bb33cc
→<2桁ずつ後から並替>→cc33bb22aa11
-----
そこでネオレックスの技術者に確認してみると、UIDはICカードの中ではバイナリ情報(コンピュータが直接理解出来る文字ではない形の情報)として保存されているもので、バイバイ タイムカードではこれを10進数の形にして取り出しているとのこと。
さらにその取り出し方は下の方の桁から順番に読んでいく「リトルエンディアン」という方式を取っていることが分かりました。
これに対してカード提供の会社は、UIDを16進数で、上の方の桁から順番に読んでいく「ビッグエンディアン」という方式を取っているようだということだったのです。
これってつまり・・・
A: 「あ、りんごだ!」
B: 「違うよ、Appleだよ」
A: 「なに言ってんだ、りんごだろう!」
B: 「いやだからAppleだって」
こういうことだったんですよね・・・
僕はてっきりUIDは10進数の形でICカードの中に入っているものだと思っていました。
不勉強でちょっと手間取った一幕でした。
(※)実際のUIDとは桁数が異なります。
関連リンク: パソコン + Felica, パソコン + Mifare