簡體   English   中英

EMV Pidion BIP 1300

[英]EMV Pidion BIP 1300

我目前正在使用PIDION BIP-1300,有沒有人有如何檢索智能卡芯片價值的例子?

我正在使用C#和BB_EMV.dll ...我找不到任何文檔...

這是我正在使用的一種:

EMV emv = new EMV();
byte[] DE_5A;
DE_5A = emv.GetData("DE_5A");

我收到的只是一個充滿零的字節數組。

提前致謝!

好的,我不知道BB_EMV是什么,也從未聽說過,但是從智能卡讀取EMV數據並不容易,我現在就告訴您。

首先,您需要一個好的托管庫,該庫可以讓您在有問題的卡上進行APDU級別的訪問,我使用以下庫: http : //www.smartcard-api.com/index.shtml

一旦有了它,就可以像添加其他任何托管庫一樣添加對它的引用,該工具包中包含示例,因此我不打算使用它來詳細介紹它,讓您自己的代碼運行不難。

我有代碼,但它是我寫的客戶版權所以我不能給你它。

一旦您開始向卡發送命令,並且它是支持標准EMV結構的卡,您要做的第一件事就是選擇PSE,通常有兩種方法可以做到這一點。

1)使用AID選擇

從您准備接受的AID(應用程序ID)列表中,將以下命令發送到卡:

0x00,0xA4,0x04,0x00

按照您希望選擇的AID進行此操作,對於VISA借記通常是這樣

0xA0,0x00,0x00,0x00,0x03,0x10,0x10

這跟隨上面的APDU數據作為數據塊后跟0x07(數據長度)

你應該得到什么也是

0x9000或0x6100(如果您得到61代碼,則意味着您必須使用修改后的參數重做請求,這超出了我在此處編寫的范圍)

如果在SW1和SW2(卡寄存器)中得到0x9000,則說明您已經成功選擇了該AID,並准備對其進行EMV調用。

2)使用DDF名稱選擇所需的支付應用程序,基本上你使用標准卡選擇命令選擇“1PAY.SYS.DDF01”如果它是接觸芯片和引腳或“2PAY.SYS.DDF02”如果它是非接觸式的,這是稱為使用PPSE進行選擇。

選擇付款應用程序后,您需要閱讀卡中的處理選項,這將告訴您一些可用信息以及查找位置的信息。

這是通過發出如下所示的read GPO命令來完成的:

0x80、0xA8、0x00、0x00、0x83、0x00

這將返回TLV結構,您必須對其進行解析以獲取詳細信息。

TLV是一個非常簡單的概念,您的數據流分為3組a

標簽

長度

因此TLV,

TLV標記可以是1到3個字節長的可變長度,通常雖然您看不到大於2個字節。 如果你的第一個字節與0x1F一起大於31(即設置了第6位或第7位),那么你有一個16位標簽,在這種情況下你需要把你剛收到的字節移位8位,然后在序列中添加下一個字節。

就像明智的做法一樣,如果將下一個字節除以128,則得到128,那么您的2個字節的長度在1到15位之間,一旦有了TAG和Length,則剩下的下一個字節就是有效負載。

該有效負載可以嵌套,實際上您很可能會在TLV結構中找到TLV結構,因此需要編寫一個好的遞歸解析器。

在您從GPO對象解析數據之后,您可以使用它來查找實際的卡數據,這是您開始閱讀PAN和track2等效數據之類的內容請注意,盡管有標准但沒有它們都是100%相同的。 大多數卡都有一個自定義數據區,同時請注意,PIN和CVV號碼不能直接從卡中獲取,而是您會發現在大多數情況下會有加密的PIN或CVV塊,這是為了發送到如果回卡連同證卡中的相應證書,發行人將報告輸入的訂單是否正確。

有些卡可以進行離線PIN驗證,但是,沃爾夫岡等級網站上充滿了一些可用的各種標准功能和數據通話的重要信息,主要是在GSM SIM卡上,但他確實覆蓋了EMV,你可以在這里找到他的網站:

http://www.wrankl.de/

這個主題比我在這里描述的要多得多,這只是冰山一角,但是自從你在6個月前發布這個以來,我猜你現在可能已經取得了一些進展,如果沒有,那么我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM