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