十幾年前傳統磁條卡片側錄盜刷事件層出不窮,當時高安全交易保護的晶片問世,ISO8583也依循著制定晶片規格的組織EMV增加了數十個晶片交易資訊欄位,按照ISO8583標準,晶片資訊在DE55,並以BER-TLV的規格(ISO8825)組成資料區塊,由於計算驗證ARQC/ARPC需要晶片交易欄位,我們要先Parse DE55。
ISO8583 晶片交易欄位是按照BER-TLV的標準制定,BER全名為Basic Encoding Rules,TLV全名則為Tag Length Value,簡單用下圖表示:
9F36代表EMV Tag: ATC 交易次數,02表示Value長度,0001則是Value,這邊要注意長度是實際長度而非16進位字串長度。
這邊我們注意到TLV Tag 第1個Byte 8bit內幾個特別的地方:
前2個bit用來表示Tag class type:通用、應用、規範還是私用。
第3個bit 表示資料屬於基本還是結構。
後5個bit 若為11111,表示Tag name有2個Byte,例如我們剛剛舉的9F36 ATC的例子。
1. Par