非接觸式IC卡(M1卡)區(qū)塊讀寫控制
- 2019-02-21 20:48:00
- 諾塔斯智能科技 原創(chuàng)
- 13160
在非接觸式IC卡系列中的Mifare One (M1卡)的優(yōu)點(diǎn)是可讀可寫的多功能卡,缺點(diǎn)是:價(jià)格稍貴,感應(yīng)距離短,目前適合非定額消費(fèi)系統(tǒng)、停車場系統(tǒng)、門禁考勤系統(tǒng)等,目前應(yīng)用最廣泛的 非接觸式IC卡。諾塔斯智能科技專業(yè)從事非接觸式IC卡讀寫器的研發(fā)與銷售,為各行業(yè)用戶提供專業(yè)的IC卡系統(tǒng)解決方案??蛻粼谑褂梦宜局悄芸ㄗx寫器開發(fā)IC卡系統(tǒng)過程中會涉及到各種IC卡的讀寫操作,使用較多的是非接觸式IC卡也就是我們常說的M1卡。諾塔斯智能科技就客戶使用我司智能卡讀寫器對非接觸式IC卡進(jìn)行讀寫操作過程中對IC卡讀卡讀寫控制的方法做一個(gè)詳細(xì)介紹。希望在大家在進(jìn)行IC卡系統(tǒng)開發(fā)過程中能有所幫助。
首先我們要弄清楚非接觸式IC卡(M1卡)的存儲結(jié)構(gòu),點(diǎn)擊這里了解非接觸式IC卡(M1卡)的存儲結(jié)構(gòu)。弄清楚它的存儲結(jié)構(gòu)之后,我們對IC卡扇區(qū)的每個(gè)區(qū)塊進(jìn)行深入了解。扇區(qū)中的每個(gè)塊(包括數(shù)據(jù)塊和控制塊)的存取條件是由密碼和存取控制共同決定的,在存取控制中每個(gè)塊都有相應(yīng)的三個(gè)控制位,定義如下:
塊0: |
C10 |
C20 |
C30 |
塊1: |
C11 | C21 | C31 |
塊2: |
C12 | C22 | C32 |
塊3: |
C13 | C23 | C33 |
表2
注意高字節(jié)和低字節(jié)順序不同。
(一),以常用設(shè)置"08 77 8F 69"控制條件為例,先搞清楚它――具有的訪問權(quán)限。
1、對"08 77 8F 69"值進(jìn)行計(jì)算,該值定位于各區(qū)塊3的6,7,8,9四個(gè)字節(jié)內(nèi),字節(jié)6=08,字節(jié)7=77, 字節(jié)8=8F, 字節(jié)9=69(默認(rèn)值,不予計(jì)算)。
2、例如:字節(jié)6=08,對應(yīng)其二進(jìn)制值=00001000, 則對6,7,8這三個(gè)字節(jié)進(jìn)行二進(jìn)制轉(zhuǎn)換結(jié)果見下表:
字節(jié)6 = 0 0 0 0 1 0 0 0 |
字節(jié)7 = 0 1 1 1 0 1 1 1 |
字節(jié)8 = 1 0 0 0 1 1 1 1 |
得到:
字節(jié)號
|
對應(yīng)二進(jìn)制值
|
位置
|
高4位
|
位置
|
低4位
|
字節(jié)6
字節(jié)7
字節(jié)8
|
0 0 0 0 1 0 0 0
0 1 1 1 0 1 1 1
1 0 0 0 1 1 1 1
|
C2Y
C1Y
C3Y
|
1 1 1 1
0 1 1 1
1 0 0 0
|
C1Y
C3Y
C2Y
|
0 1 1 1
1 0 0 0
1 1 1 1
|
所屬塊位
|
塊3塊2塊1塊0
|
塊3塊2塊1塊0
|
塊3位
|
字節(jié)7,字節(jié)6,字節(jié)8 = C13,C23,C33 = C1Y,C2Y,C3Y = 0 1 1
|
塊2位
塊1位
塊0位
|
字節(jié)7,字節(jié)6,字節(jié)8 = C12,C22,C32 = C1Y,C2Y,C3Y = 1 1 0
字節(jié)7,字節(jié)6,字節(jié)8 = C11,C21,C31 = C1Y,C2Y,C3Y = 1 1 0
字節(jié)7,字節(jié)6,字節(jié)8 = C10,C20,C30 = C1Y,C2Y,C3Y = 1 1 0
|
1、高4位的各塊值=低4位的各塊值時(shí),其值可用。高4位值≠低4位值時(shí),其值不可用!
2、高位和低位的順序是不一樣的。高位從上向下是C2,C1,C3。低位是C1,C3,C2
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
|
6
|
c23_b
|
c22_b
|
c21_b
|
c20_b
|
c13_b
|
c12_b
|
c11_b
|
c10_b
|
7
|
c13
|
c12
|
c11
|
c10
|
c33_b
|
c32_b
|
c31_b
|
c30_b
|
8
|
c33
|
c32
|
c31
|
c30
|
c23
|
c22
|
c21
|
c20
|
9
|
◆ 塊3 = 011:權(quán)限為:KeyA,KeyB均不可讀,驗(yàn)證KeyB正確后可改寫KeyA和KeyB,驗(yàn)證KeyA或KeyB正確后可讀"控制位"。在此可見密鑰KeyB的重要性,KeyB不正確是無法看到塊3控制值,更無法修改密鑰。
◆ 塊2 = 塊1 = 塊0 = 110:權(quán)限為:驗(yàn)證KeyA或KeyB后可讀該塊數(shù)據(jù),減值以及初始化值,只有驗(yàn)證KeyB 正確后才可改寫該塊數(shù)據(jù),在此可以看到密鑰KeyB對改寫數(shù)據(jù)塊也起著關(guān)鍵性作用。
(二)、"08 77 8F 69" 控制條件設(shè)置步驟:
由(一)可知:KeyB設(shè)置后為不可讀,并且改寫數(shù)據(jù)和改寫控制位都需要正確驗(yàn)證它,故KeyB設(shè)置后程序
操作員必須妥善保管KeyB值,否則以后改寫數(shù)據(jù)和控制位時(shí),不正確的KeyB值將無法實(shí)現(xiàn)卡的任何操作!!!
1、修改塊3控制位的值:最初的各區(qū)塊3內(nèi)的KeyA,KeyB都是廠商12個(gè)"F"默認(rèn)值(KeyA在任何條件下均為不可讀,大部分讀寫機(jī)程序表現(xiàn)KeyA為未知的12個(gè)"0" ),在修改控制值時(shí),先不要修改默認(rèn)密碼KeyA和KeyB,在控制位修改成功后,再去更改新密碼值。即先對塊3的控制位進(jìn)行修改(默認(rèn)值FF 07 80 69改為新值08 77 8F 69)并執(zhí)行寫操作??刂莆粚懗晒?,KeyB亦為12個(gè)"0"不可讀了,但仍是隱藏的12個(gè)"f"默認(rèn)值。
2、修改塊3的KeyA和KeyB值:控制位08 77 8F 69值寫成功后,驗(yàn)證KeyB正確后方可改寫KeyA和KeyB新密碼。在密碼操作模式鍵入要改寫區(qū)塊之先前密碼B(先前密碼為默認(rèn)值時(shí),則不需改動(dòng)和加載),加載后反回?cái)?shù)據(jù)操作模式,再進(jìn)行讀值,KeyA和KeyB值的改寫。
3、修改塊0~塊2中數(shù)據(jù):由新的控制條件08778F69可知,要修改數(shù)據(jù),必須先驗(yàn)證KeyB,故先設(shè)置密碼操作為KeyB認(rèn)證方式,加載后再返回?cái)?shù)據(jù)操作模式,對要修改的數(shù)據(jù)塊進(jìn)行值的改寫操作。
4、上例中分析了"08 77 8F 69"的訪問條件及其改寫步驟,對用戶的其它控制條件亦可參照應(yīng)用。
聯(lián)系人: | 張經(jīng)理 |
---|---|
電話: | 400-023-6659 |
傳真: | 023-68798110 |
Email: | 843718693@qq.com |
QQ: | 843718693 |
微信: | Lotus-Smart |
微博: | lotusreader |
旺旺: | 諾塔斯智能科技有限公司 |
地址: | 重慶市江北區(qū)宏帆路36號宏帆天地1棟6樓 |