閒聊

[RFID] MIFARE的基礎觀念介紹

最近因為某些因素 又跑來玩RFID, 這邊順便說一個這兩天搞得一個笑話,話說 我為了讀取RFID跑去買了一個讀卡機 結果他付的軟體我不會用,最後我還是自己用ARDUINO做一個RFID的 READ WRITER出來 ,那我幹嘛花錢去買讀卡機….

所以最後我還是再用我自己土砲的RFID的讀寫卡機  0rz

這篇會簡單的說明一下RFID的一些觀念

一般來說 我們常用的RFID卡片就會是MIFARE卡 工作頻率是:13.56MHZ

MIFARE卡有分S50跟S70的 主要差異在記憶體大小,S50為1K Bytes(實際是1024 Bytes),S70為4K Bytes(實際是4096 Bytes)。

像S50來說好了他的容量为8K位元的EEPROM
分为16个扇區,每個扇區有4塊,每塊16個字節,以塊為存取單位
每个扇區有獨立的一组密碼及訪問控制
每張卡有唯一序號,為32位
具有防衝突機制,支持多卡操作
無电源,自带天線,内含加密控制邏輯和通訊邏輯電路
資料保存期為10年,可改寫10萬次,毒無限制次
工作温度:-20℃~50℃(濕度为90%)
工作频率:13.56MHZ
通信速率:106 KBPS
讀寫距離:10 cm以内(與讀卡機有關)

而所有的資料都會存在卡的記憶區裡面。你可以想像裡面有一個超大的表格一樣

是一個64*16大小的表格這樣

RFID MIFARE卡

 

每一個sector包含四個block 前三個block為數據區 第四個block為驗證區

而第一個sector的裡面block0基本上為卡號跟一些商業資訊放置的區域。這個地方基本上是不可以修改的(除非你買特製的mifare可改UID的卡 台幣大概一張50塊吧)

也就是第1 2 block為數據區 3為驗證區 4 5 6 為數據區 7為驗證區 8 9 10為數據區 ..以此類推

而驗證區裡面還存有兩組密碼 密碼A跟密碼B 可以用來做不同的驗證。

例如說要讀取的話 就要比對密碼A 成功才可以讀取資料 。而寫入的話就要驗證密碼B 成功才能修改資料如此。

也就是說 1.基本上你不能改BLOCK0的所有資料也就是不能改卡號,除非你買特製卡。

2.第3 第7 11 15 19 23 27 31 35 39 43 47 51 55 59 63都是驗證密碼區 不會拿來寫資料

除此之外其他區域都可以拿來寫任何資料

而新卡的話密碼A密碼B大多都會是 FF FF  FF FF FF FF

未命名

 

題外話就是 不少廠商為了偷懶 驗證其實都只用UID來驗證而已…

2 comments

不好意思,想請教一下
我的Block 6為:

28 0B CC 01 08 31 30 30 30 B8 0C 3C

我程式是寫了1000這個資料 (也就是 31 30 30 30)
可以請教一下,其他的16進位是?
謝謝版主

發佈回覆給「Milton Lin」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

(若看不到驗證碼,請重新整理網頁。)