看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《evileva (小黑要乖喔)》之銘言: : 最近在撰寫一個讀卡機程式,翻閱了網路上的資料, : 知道如何讀取金融卡、健保卡、自然人憑證, : 也都能成功讀取(其實只要參數下的對都沒有難度)。 : 但是對於讀取過程中所下的APDU COMMAND不是了解的很透徹, : 嘗試的對空白卡下SELECT FILE COMMAND : EX: : BYTE pbSendBuffer[] = {0x00,0xA4,0x00,0x00,0x02,0x3F,0x00};// Select MF ^^ Select 是 00 A4 04 00 .. 卡片上確定有 Applet 嗎? 請愛用舊版的 Eclipse Smart Card 工具 不然就隨便找找可以下 APDU Command 的工具吧 : 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: 140.112.30.46