非接觸式會員卡 M1卡具體操作

M1卡最為重要的優點是可讀可寫并且安全性高的多功能卡。這些優點與其自身的結構密不可分。
M1結構:
M1卡分為16個扇區,每個扇區4塊(塊0~3),共64塊,按塊號編址為0~63。第0扇區的塊0(即絕對地址0塊)用于存放廠商代碼,已經固化,不可更改。其他各扇區的塊0、塊1、塊2為數據塊,用于存貯數據;塊3為控制塊,存放密碼A、存取控制、密碼B。每個扇區的密碼和存取控制都是獨立的,可以根據實際需要設定各自的密碼及存取控制。
M1卡運作機理:
連接讀寫器→尋卡→識別卡(獲取卡序列號)→從多卡中選一張卡→向卡中緩沖區裝載密碼→驗證密碼→進行讀寫→關閉連接
即(代碼說明)
Open_USB→rf_request→rf_anticoll→rf_select→rf_load_key→rf_authentication→(/a_hex)→rf_read/rf_write→(hex_a)→Close_USB
如果概括來說的話,主要也就四部分 開關連接、尋卡、驗證密碼、讀取。
(至于詳細程序代碼,相信大家自己看過dll說明文檔后,自己會明白的,這里就不寫了,因為內容多)
M1卡功能模式:
1.尋卡模式:
尋卡模式分三種情況:IDLE模式、ALL模式及指定卡模式(0,1,2 均是int類型,是方法參數,下同)。
     0——表示IDLE模式,一次只對一張卡操作;
     1——表示ALL模式,一次可對多張卡操作;
     2——表示指定卡模式,只對序列號等于snr的卡操作(高級函數才有)【不常用】
也就是說,我們一次也可以同時操作多張卡。
對于多卡操作,其實際真正執行操作的還是一張卡。讀寫器能識別多張卡的序列號(但注意識別出的順序是不定的,并且最多也就能識別4張卡,因為卡疊放的厚度太厚,會超出讀寫器的識別范圍),并一一進行操作。
所以由此看出,多卡操作的意義并不大。但我建議大家還是設置為1好了(原因不說了,自己感受吧,其實無所謂)。
2.密碼驗證模式:
     0——KEYSET0的KEYA
     4——KEYSET0的KEYB
M1卡可以在驗證密碼時選擇密碼類型(A/B)。【其實M1卡有3套密碼(KEYSET0、KEYSET1、KEYSET2),共6個密碼(用0~2、4~6來表示這六個密碼),目的是為了適應不同讀寫器。而這里我們用的是KEYSET0的2個密碼】
 
M1卡密碼機制:
這可以說是M1卡的精髓了,也是M1卡最為復雜的地方,希望大家耐心看完。
(請先看明白M1卡結構)如上所說,在存取控制中每個塊都有相應的三個控制位,它們的定義如下:
     塊0:   C10   C20   C30
     塊1:   C11   C21   C31
     塊2:   C12   C22   C32
     塊3:   C13   C23   C33
一個扇區的三個數據塊,我們可以利用密碼機制對它們分別進行權限控制。數據塊(塊0、塊1、塊2)的存取控制如下:
M1卡編程
例如:當塊0的存取控制位C10 C20 C30=100時,驗證密碼A或密碼B正確后可讀;驗證密碼B正確后可寫;不能進行加值、減值操作。
那么M1卡修改密碼的方法是rf_changeb3
參數:
     icdev:通訊設備標識符
     _SecNr:扇區號(0~15)
     KeyA:密碼A
     _B0:塊0控制字,低3位(D2D1D0)對應C10、C20、C30
     _B1:塊1控制字,低3位(D2D1D0)對應C11、C21、C31
     _B2:塊2控制字,低3位(D2D1D0)對應C12、C22、C32
     _B3:塊3控制字,低3位(D2D1D0)對應C13、C23、C33
     _Bk:保留參數,取值為0
     _KeyB:密碼B
由上我們看出_B0、_B1、_B2、_B3分別控制塊0、塊1、塊2、塊3。
由圖我們可知_B0、_B1、_B2的可取值為 0、10、100、110、1、11、101、111。
這里大家一定要注意一點:
不能裝載密碼到M1卡某一扇區后再更改那扇區的密碼(最好連接完讀寫器后直接更改密碼),否則更改密碼會失敗而凍結扇區。如果不慎這樣了,解決的辦法是完成一次讀寫操作,再更改密碼。
控制塊(塊3)的存取控制與數據塊(塊0、1、2)不同,它的存取控制如下:
M1卡編程
_B3的取值與_B0相同。
 

好了關于M1卡的編程我就介紹到這里了,大家如果有什么不明白的地方,可以和我聯系交流。


M1卡補充內容:

一般把可讀可寫,頻率是13.56MHz的射頻卡稱為IC卡,而只能讀,頻率是125KHz的射頻卡稱為ID卡,可以簡單的理解為,IC卡可以寫入數據,而ID卡則只能讀卡芯片內的UID號,也就是內碼號,M1卡是NXP公司的S50卡的一種叫法,國內的復旦F08,達華的TKS50...

NXP的S50容量為1024byte,官方資料

S50及S70是NXP的Mifare1系列芯片中的兩種型號 全稱是Mifare1 S50和Mifare1 S70 這兩種芯片除掉容量分別為1K及4K以外,其他無太大區別

S50芯片廠商代碼對應表,0扇區0塊的內容 2014-11-10 17:19 提問者懸賞:5分 | 匿名 | 分類:硬盤 可以根據0扇區0塊的內容判斷出這個芯片是哪個廠家的...

所謂的M1芯片,是指菲利浦下屬子公司恩智浦出品的芯片縮寫,全稱為NXP Mifare1系列,常用的有S50及S70兩種型號,目前都有國產芯片與其兼容,利用PVC封裝M1芯片、感應天線,然后壓制成型后而制作的卡即是智能卡行業所說的M1卡,屬于非接觸式IC卡...

2016年11月02日 來源:大新軟件

標簽:
分享到:

產品注冊與防偽查詢 | 法律聲明 | 在線客服 | 聯系我們

版權所有:久智大新軟件(成都)有限公司? 2006 - 2016 DahSing Soft Inc. 蜀ICP備14021816號-6

大新軟件
大新軟件 版權所有
排列三和尾走势图 金7乐怎么下载 赛车pk10走势图 广西快乐双彩开奖走势图 浙江6+1开奖结果查询果 专炒一只股票的股民 四肖期期准四肖期期准+四肖 股票入门基础知识k 河南快3官网版下载安装 15选5复式投注对照表 河北11选5追号方案