最近在撰寫一個讀卡機程式,翻閱了網路上的資料,
知道如何讀取金融卡、健保卡、自然人憑證,
也都能成功讀取(其實只要參數下的對都沒有難度)。
但是對於讀取過程中所下的APDU COMMAND不是了解的很透徹,
嘗試的對空白卡下SELECT FILE COMMAND
EX:
BYTE pbSendBuffer[] = {0x00,0xA4,0x00,0x00,0x02,0x3F,0x00};// Select MF
rv = SCardTransmit(hCard, &SendPci, pbSendBuffer, dwSendLength,
&RecvPci, pbRecvBuffer, &dwRecvLength);
String sw1 = IntToHex(pbRecvBuffer[dwRecvLength-2] , 2);
String sw2 = IntToHex(pbRecvBuffer[dwRecvLength-1] , 2);
上面pbSendBuffer所下的命令,應該是select卡片中的Master File
但是我所得到的回傳值sw1和sw2卻是6A 86,查詢了標準規格得知,
這個response代表 Incorrect parameters P1-P2
也就是我下的參數錯誤(0x00 , 0x00),我不知道這問題出在哪裡,
網路上所查到的資料,參數也都是這樣下,
還是空白卡一開始的時候是沒有MF存在嗎?
開發平台: BCB 6
補充說明:
希望有前輩高人不吝指教,我主要只是要能對空白卡做讀寫的動作,
但卻被這問題卡住一整天..,希望大家多幫忙了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.200.189
※ 編輯: evileva 來自: 59.126.200.189 (11/03 18:56)