話說智能卡的文件種類
文章出處:http://srpd123.com 作者: 人氣: 發(fā)表時間:2012年02月21日
按照ISO7816-4的定義,智能卡的數(shù)據(jù)存儲也是按照文件的方式進(jìn)行的。這里所說的數(shù)據(jù)多指可以通過終端進(jìn)行訪問的數(shù)據(jù),一些智能卡的內(nèi)部數(shù)據(jù)(不能通過終端進(jìn)行訪問的)究竟采取什么樣的存儲方式完全取決于智能卡OS的設(shè)計者。
從大類來分,智能卡的文件類型分為專用文件DF(Dedicated File)和基本文件EF(Elementary File)。其中DF的作用類似于計算機(jī)系統(tǒng)中的目錄或者文件夾,而EF才是用來存儲數(shù)據(jù)的。
根據(jù)樹狀結(jié)構(gòu),一張卡片中必須有且僅有一個根目錄即:MF(Master File),也稱作主控文件。其他所有的DF和EF都位于MF之下。MF是一個特殊的DF,在卡片復(fù)位后被默認(rèn)選中,也就是說,當(dāng)卡片復(fù)位之后即處于MF 目錄下。
對于文件的操作可以通過隱性選擇和顯性選擇兩種方式,其中顯性選擇就是通過Select File命令直接選擇,而隱性選擇則是通過讀寫文件命令利用短文件標(biāo)識來指出具體訪問的是哪個文件。
通常對于DF文件只有通過顯性直接選擇的方式才能選中,而對于EF則即可以通過顯性選擇,也可以通過隱性選擇的方式來訪問。
每個DF和EF都有自己的文件標(biāo)識FID,F(xiàn)ID用兩個字節(jié)來表示,其中3F00是MF專用的標(biāo)識,而FFFF是保留數(shù)據(jù)不能用作文件標(biāo)識。對于EF而言除了FID,還有短文件標(biāo)識SFI,通常為FID的后5位數(shù)據(jù);對于DF而言除了FID之外還有DF名也可以用來選擇這個DF文件。
在進(jìn)行卡片應(yīng)用數(shù)據(jù)定義時,通常把同一個應(yīng)用的基本數(shù)據(jù)文件都定義在某一個DF下,從而這個DF也可以被稱作應(yīng)用專用文件ADF(Application DF)。如果這個ADF處于另一個DF之下,那么那個DF就叫做目錄DDF(Directory DF)。簡單來說,如果一個DF下面只有EF,那么這個DF就可以稱作ADF,如果一個DF下面既有DF又有EF,那么這個DF就可以稱作DDF。
作為基本文件EF又可以分為:透明二進(jìn)制文件和記錄文件兩大類。透明二進(jìn)制文件存儲的數(shù)據(jù)按照數(shù)據(jù)塊的方式進(jìn)行訪問,可以通過偏移地址和讀寫長度來進(jìn)行訪問。而記錄文件則是按照一條一條的記錄來進(jìn)行數(shù)據(jù)訪問的。記錄文件還可以進(jìn)一步細(xì)分為線性定長記錄、線性變長記錄和循環(huán)記錄三種格式。
線性定長記錄:每條記錄的長度都相同,在追加記錄時記錄號順序遞增;線性變長記錄:每條記錄的長度可以不同,在追加記錄時記錄號順序遞增;循環(huán)記錄:這是一個比較特殊的記錄文件,每條記錄的長度相同,但是在追加記錄時記錄號并不是順序遞增的,而是和記錄的添加順序反向,即最后追加的記錄始終是第一號記錄,最早追加的記錄號最大。而且當(dāng)添加的記錄達(dá)到文件空間的極限之后,如果再繼續(xù)添加記錄的話,最早的記錄將會被最新的記錄所覆蓋。
對于透明二進(jìn)制文件可以通過Read Binary和Update Binary兩條命令來訪問,而對于記錄文件(不論什么樣的記錄文件)可以用Read Record和Update Record以及Append Record來訪問。