1.首先知道PIN的數據格式和如何獲取PIN
PIN的格式應符合ANSI X9.8 Format(帶主賬號信息)
PIN的長度爲4-12位格式:LV
位置 | 長度 | 內容 |
1 | 1字節 | PIN長度 |
2 | 7字節 | 4-12位PIN(每個字符佔4個BIT,不足右補F) |
若只得到PIN碼,則按照如下格式壓縮成PIN格式
PIN長度(1 個字節) | 4-12位PIN(每個字符佔4個BIT,不足右補F)(7 個字節) |
2.PAN數據格式
PAN是從主賬號的最後一位檢驗位前向左取12位,此中數據都是BCD碼格式
位置 | 長度 | 內容 |
1 | 2字節 | %H0000 |
2 | 6字節 | 取主賬號的右邊數第二位開始向左12 位 |
0000(2個字節) | 12位PAN(每個字符佔4個BIT)(6 個字節) |
取得PAN:0x0000678901234567
3.PIN和PAN異或得到PINBLock
將Hex格式的PIN和PAN異或即可得到要求結果
PIN: 0x06123456FFFFFFFF
PAN:0x0000678901234567
異或: 0x061253DFFEDCBA98
4.根據需要與對應密鑰加密即可得最終的加密PINBLOCK數據