無論什麼樣的智能卡,不管是接觸式的還是非接觸式的,存儲資料都是一個必須具備的功能。即使是隻有一個5位元組卡号的id64格式的卡片也不例外,隻不過卡裡面的内容在出廠時就被廠家寫死了,使用者隻能讀出而不能寫入或改變其内容罷了。
資料在存儲媒體中的存儲格式往往和存儲媒體的容量有很大關系。容量小的存儲器如e2prom,一般以二進制的位(bit)或位元組(byte)為機關;容量大的存儲媒體如硬碟、u盤,一般以檔案的形式存儲資料,檔案有各種類型,檔案大小隻要别超過實體存儲總量,幾乎不受限制。
射頻卡通常面向特定的應用,容量較小,是以很少像硬碟或u盤那樣資料以格式和大小都不受限制的檔案存儲,同時多數射頻卡也不以位(bit)或位元組(byte)為機關執行讀寫操作,可能是因為射頻卡的資料通過無線傳輸,資料傳輸時要調制、解調,并且要加上幀頭、幀尾、同步、校驗,傳的位元組數太少了效率太低。
射頻卡中的資料一般以頁(page)、塊(block)或特定檔案(file)的形式存儲。
頁一般包括4個位元組,比如mifare
ultralight、hitag-1、hitag-2、hitag-s、icode2都是以4個位元組為1頁,每次讀寫以4個位元組(1頁)為機關;
塊通常比頁大,象mifare1
s50、s70、felica就是以塊為讀寫機關,一個資料塊包含16位元組;
容量更大的射頻卡中一般以檔案的形式存儲資料,例如mifare
desfire以及多數cpu卡,當然這裡所謂的檔案其大小和類型都受到嚴格限制。
智能卡(包括接觸式卡和非接觸式卡)中的檔案一般有以下4種:
1.透明二進制檔案:這是最簡單也是最基礎的智能卡檔案,檔案大小可變,寫入和讀出的資料多少也可變,檔案裡的内容被看做透明的二進制資料流,沒有特定的格式;
2.線性定長記錄檔案:檔案被分為若幹個等長的區段,每個區段對應一個記錄,讀和寫以整條的記錄為機關,用記錄号來識别區分每條記錄;
3.線性變長記錄檔案:檔案也是以記錄為機關進行組織,但各條記錄的大小可以不同,讀和寫以整條的記錄為機關,也是用記錄号來識别區分每條記錄。記錄的長度雖然可變,但一旦寫完,後來更新的時候新記錄的長度必須和原來記錄的長度相同;
4.循環定長記錄檔案;檔案以等長的記錄來組織存儲,與線性定長記錄檔案不同的是,檔案裡的記錄數是固定的,所有記錄寫滿了後,繼續向檔案裡寫記錄将覆寫最早添加的記錄。每條記錄的記錄号也不是固定的,最新寫入記錄的記錄号總是1,上一次寫入記錄的記錄号是2,依次類推。