ic 卡獲取帳號apdu指令 APDU命令

2021-10-16 20:04:27 字數 3391 閱讀 9887

cla    ins  p1  p2  lc  data  le

其中cla為指令類別;ins為指令碼;p1、p2為引數;lc為data的長度;le為希望響應時回答的資料位元組數,0表最大可能長度。

一 命令分類:

cos命令由具體應用分為4種命令報文結構如下:

① 情形1

cla ins p1 p2  00

② 情形2

cla ins p1 p2 le

③ 情形3

cla ins p1 p2 lc data

④ 情形4

cla ins p1 p2 lc data le

二 響應報文

1) 響應結構

響應資料  響應狀態碼

data      sw1 sw1

data: 返回給使用者的資料,即命令的執行結果。

sw1、sw2: 返回命令處理的狀態。

三 命令集

1) read binary

功能:此命令用於讀取二進位制檔案部分或全部的內容。

cla  00

ins  b0

p1 見引數說明

p2 從檔案中讀取的第一位元組的偏移位址

le 期望讀出資料的長度

2) update binary

功能:此命令使用給定的資料來更新二進位制檔案部分或全部的內容。

cla  00

ins  d6

p1 見引數說明

p2 要修改的第一位元組的偏移位址

lc 後續資料域的長度

data 修改用的資料

3) read record

功能:此命令用於讀取記錄檔案中指定記錄的內容。

cla  00

ins  b2

p1 記錄號

p2 見引數說明

le 期望讀出資料的長度

4) update record

功能:此命令使用給定的資料來更新記錄檔案中指定記錄的內容。當所指定的檔案非記錄檔案時,命令將終止。

cla  00

ins  dc

p1 p1= 00 表示當前記錄

p1≠ 00 表示指定的記錄號

p2 見引數說明

lc 後續資料域的長度

data 更新原有記錄的新記錄

5) verify pin

功能:此命令將校驗給定的密碼的正確性,根據比較的結果修改安全狀態,若校驗失敗次數達到pin嘗試上限,則pin自動鎖定。

cla  00

ins  20

p1  00

p2lc  02 ~ 10

data 外部輸入的個人密碼

6) select file

功能:此命令使用檔名或應用標示符來選擇ic卡內df或ef。

cla  00

ins  a4

p1  00

p2  00

lc  00 (選擇mf檔案)/  02

data 無 / fid

7) get challenge

cla  00

ins  84

p1  00

p2  00

le  04

8) get response

功能:此命令為t=0協議情形4狀態下,用來取卡中返回的資料。

格式:cla  00

ins  c0

p1  00

p2  00

le 響應的期望資料最大長度

9) internal authenticate

功能:此命令將為外部裝置驗證卡中的秘密模組的有效性提供資料。

cla  00

ins  88

p1  00

p2  00 ~ 07 金鑰號

lc  04

data 外部隨機數(4位元組)

10) external authenticate

功能:此命令將驗證外部裝置中的秘密模組的有效性。

cla  00

ins  82

p1  00

p2  00  ~ 07 金鑰號

lc  0c

data 發卡方認證資料

11) change / unlock pin

功能:修改、解鎖、安裝卡片個人密碼。

cla  00

ins  5e

p1  00  修改卡片個人密碼

01  解鎖卡片個人密碼

02  安(重)裝卡片個人密碼

p2 密碼號

lcdata

12) unlock key

功能:解鎖卡片應用金鑰。

cla  00

ins  5c

p1  01  解鎖應用金鑰

02  安裝卡片應用金鑰

p2 金鑰號

lc 無 / 金鑰長度

data 無 / 加密的金鑰

13) create file

功能:此命令建立卡片檔案系統。

cla  00 /  80

ins  f2

p1  00 / ftp 檔案型別

p2  00 / fac 檔案訪問控制條件

lc 無 /  07

data

示例:1 應用選擇

(1)選擇mf(主檔案)

cla   ins   p1   p2   lc   data

00    a4    00   00

p1=00選擇主檔案

(2)根據應用識別符號選擇應用

cla   ins   p1   p2   lc   data

00    a4    04   0c   07   a0 00 00 02 47 10 01

p1=04 選擇df(專用檔案),此時資料域為df的檔名(aid應用識別符號)

df包括ef(基本檔案)和其他df

df1:ef.com、ef.dg1........................ef.dg16、ef.sod

2 使用select命令選擇基本檔案

例:選擇機讀取區

cla   ins   p1   p2   lc   data

00    a4    02   0c   02   01 01

3讀二進位制

cla   ins   p1   p2   lc   data

00    b0    05   00   00                   //讀取檔案前256byte

如果p1的最高位b8為1時,b6和b7位必須為0,b5-b1位表示待讀取的基本檔案的sfi;這時p2表示要讀取資料起始位置在檔案中的偏移量。

如果p1的最高位為0時,p1的後7位和p2相連共同組成了乙個超過256的整數,表示待讀取資料塊的起始位置在檔案中的偏移量,可以用於超過256byte檔案的讀取。

讀取資料組1(機讀取)的資料

讀取資料組2(編碼人臉)的資料

IC卡寫卡操作流程

var icdata new icdata var deviceresult crd.crdicpoweron if deviceresult.issuccess return null var result crd.crdpbocinit if result.issuccess return nu...

常用IC卡容量

晶元型別 容量晶元描述 工作溫度 at24c01a 1kbit 2線序列eeprom 0 70 at24c02 2kbit 2線序列eeprom 0 70 at24c04 4kbit 2線序列eeprom 0 70 at24c08 8kbit 2線序列eeprom 0 70 at24c16 16kb...

接觸式IC卡

現在有接觸式和非接觸式ic卡 據我所知,非接觸式是卡是乙個id,然後mcu識別這個id然後通過上位機做出對這個id的相關操作 那麼接觸式的卡是乙個儲存元件,依靠mcu對元件讀寫操作,做出相應的處理 這個不需要連線上位機 疑問 非接觸式的卡能作為乙個可讀寫的元件麼?不管是非接觸式的 還是接觸式的 罈子...