主密钥:

aabbccddeeff11223344556677889900

1、从签到报文中获取工作密钥,包括MACKEY明文,PINKEY明文

签到:

12-03-31 16:38:09---->[Receive]

02 00 91    60 00 03 00 00    60 31 00 31 54 32    08 00    00 20 00 00 00 C0 00 16    00 00 39    31 32 33 34 35 36 37 36   31 32 33 34 35 36 37 38 39 30 31 32 33 34 35    00 11 00 00 00 03 00 30    00 29 53 65 71 75 65 6E 63 65 20 4E 6F 31 36 33 30 38 31 30 33 38 35 4E 4C 32 34 37 35 33 36   00 03 30 31 20 03 11

TDUP:60 00 03 00 00 60

报文头:31 00 31 54 32

数据类型:08 00

位图:00 20 00 00 00 C0 00 16(0000 0000 0010 0000 0000 0000 0000 0000 0000 0000 1100 0000 0000 0000 0001 0110)

11域(受卡方系统跟踪号):00 00 39

41域(受卡机终端标识码):31 32 33 34 35 36 37 36

42域(受卡方标识码):31 32 33 34 35 36 37 38 39 30 31 32 33 34 35

60域(自定义域):00 11 00 00 00 03 00 30

62域(自定义域):00 29 53 65 71 75 65 6E 63 65 20 4E 6F 31 36 33 30 38 31 30 33 38 35 4E 4C 32 34 37 35 33 36

63域(自定义域):00 03 30 31 20

12-03-31 16:38:09---->[Send]

02 01 21    60 00 00 00 03 60    31 00 31 54 32    08 10    00 38 00 01 0A C0 00 14    00 00 39    16 38 09    03 31    08 01 03 10 00    30 34 36 38 37 39 30 38 37 35 36 34   30 30    31 32 33 34 35 36 37 36     31 32 33 34 35 36 37 38 39 30 31 32 33 34 35    00 11 00 00 00 03 00 30   00 40 8B 3D 47 86 55 51 F1 FB 54 8F D4 72 5C C5 0A 57 FF EF A8 D9 8B 3D 47 86 55 51 F1 FB 00 00 00 00 00 00 00 00 6F B2 3E AD 03 41

TDUP: 60 00 00 00 03 60

报文头: 31 00 31 54 32

数据类型:08 10

位图: 00 38 00 01 0A C0 00 14 (0000 0000 0011 1000 0000 0000 0000 0001 0000 1010 1100 0000 0000 0000 0001 0100)

11域(受卡方系统跟踪号):00 00 39

12域(受卡方所在地时间):16 38 09

13域( 受卡方所在地日期):03 31

32域(受理方标识码):08 01 03 10 00

37域(检索参考号):31 32 33 34 35 36 37 38 39 30 31 32 33 34 35

39域(应答码): 30 30

41域(受卡机终端标识码): 31 32 33 34 35 36 37 36

42域(受卡方标识码):31 32 33 34 35 36 37 38 39 30 31 32 33 34 35

60域(自定义域):00 11 00 00 00 03 00 30

62域(自定义域):00 40    8B 3D 47 86 55 51 F1 FB 54 8F D4 72 5C C5 0A 57    FF EF A8 D9        8B 3D 47 86 55 51 F1 FB    00 00 00 00 00 00 00 00      6F B2 3E AD

(PIN的16个密文)                     (checkvalue)          (MAC的8个密文)                                   (checkvalue)

PINKEY工作密钥明文:1122334455667788 9900112233445566     将PINKEY工作密钥与0X 00 00 00 00 00 00 00 00进行3DES运算得:FFEFA8D9 607ED326

MACKEY工作密钥明文:1122334455667788                      将MACKEY工作密钥与0X 00 00 00 00 00 00 00 00进行3DES运算得:6FB23EAD 0534752B

2、根据上面得到的MACKEY,PINKEY,计算出用户输入的密码,以及计算出这个报文的MAC值。(填写XX 的部分为MAC填写的位置)

12-03-31 16:39:13---->[Receive]

02 01 70    60 00 03 00 00 60    31 00 31 54 32     02 00     30 20 04 C0 30 C0 98 11    00 00 00    00 00 00 00 11 12    00 00 40    02 10   00    12    37 62 21 50 55 00 00 00 01 04 5D 49 12 12 02 86 06 00 00 00     01 04    99 62 21 50 55 00 00 00 01 04 5D 15 61 56 00 00 00 00 00 00 00 03 00 00 00 11 40 00 04 91 21 D0 00 00 00 00 00 0D 00 00 00 00 00 00 D0 00 00 00 28 60 60 00    31 32 33 34 35 36 37 36    31 32 33 34 35 36 37 38 39 30 31 32 33 34 35    31 35 36    DA 86 E7 B7 74 2E FA E4    26 00 00 00 00 00 00 00    00 14 22 00 00 03 00 05 01 XX XX XX XX XX XX XX XX 03 57

TDUP:60 00 03 00 00 60

报文头:31 00 31 54 32

数据类型:02 00

位图:30 20 04 C0 30 C0 98 11    (0011 0000 0010 0000 0000 0100 1100 0000 0011 1100 0000 1001 1000 0001 0001)

3域(交易处理码):00 00 00

4域(交易金额):00 00 00 00 11 12

11域(受卡方系统跟踪号):00 00 40

22域(服务点输入方式码):02 10

25域(服务点条件码):00

26域(服务点PIN获取码):12

35域(2磁道数据):37 62 21 50 55 00 00 00 01 04 5D 49 12 12 02 86 06 00 00 00

36域(3磁道数据)::01 04 99 62 21 50 55 00 00 00 01 04 5D 15 61 56 00 00 00 00 00 00 00 03 00 00 00 11 40 00 04 91 21 D0 00 00 00 00 00 0D 00 00 00 00 00 00 D0 00 00 00 28 60 60 00

41域(受卡机终端标识码):31 32 33 34 35 36 37 36

42域(受卡方标识码):31 32 33 34 35 36 37 38 39 30 31 32 33 34 35

49域(交易货币代码): 31 35 36

52域(个人标识码数据): DA 86 E7 B7 74 2E FA E4

53域(安全控制信息):26 00 00 00 00 00 00 00

60域(自定义域):00 14 22 00 00 03 00 05 01

64域(报文鉴别码):XX XX XX XX XX XX XX XX

MAC值的运算过程:3130303844454137 (数据类型到63域进行MACKEY的DES运算)

02 00 30 20 04 C0 30 C0  XOR   98 11 00 00 00 00 00 00    得:9A11302004C030C0

9A11302004C030C0         XOR   00 11 12 00 00 40 02 10    得:9A002220048032D0

9A002220048032D0         XOR   00 12 37 62 21 50 55 00    得:9A12154225D067D0

9A12154225D067D0         XOR   00 00 01 04 5D 49 12 12    得:9A121446789975C2

9A121446789975C2         XOR   02 86 06 00 00 00 01 04    得:98941246789974C6

98941246789974C6         XOR   99 62 21 50 55 00 00 00    得:01F633162D9974C6

01F633162D9974C6         XOR   01 04 5D 15 61 56 00 00    得:00F26E034CCF74C6

00F26E034CCF74C6         XOR   00 00 00 00 00 03 00 00    得:00F26E034CCC74C6

00F26E034CCC74C6         XOR   00 11 40 00 04 91 21 D0    得:00E32E03485D5516

00E32E03485D5516        XOR   00 00 00 00 00 0D 00 00     得:00E32E0348505516

00E32E0348505516     XOR   00 00 00 00 D0 00 00 00    得:00E32E0398505516

00E32E0398505516         XOR  28 60 60 00 31 32 33 34    得:28834E03A9626622

28834E03A9626622         XOR   35 36 37 36 31 32 33 34    得:1DB5793598505516

1DB5793598505516         XOR   35 36 37 38 39 30 31 32    得:28834E0DA1606424

28834E0DA1606424         XOR   33 34 35 31 35 36 DA 86    得:1BB77B3C9456BEA2

1BB77B3C9456BEA2         XOR   E7 B7 74 2E FA E4 26 00    得:FC000F126EB298A2

FC000F126EB298A2         XOR   00 00 00 00 00 00 00 14    得:FC000F126EB298B6

FC000F126EB298B6         XOR   22 00 00 03 00 05 01 00    得:DE000F116EB799B6

结果转换成十六个HEXDECIMAL:4445303030463131   3645423739394236

取前8个用MACKEY对其进行加密得:E3B1ABE3EDB7E10C

将D7C67DC434FECBC1与后八个字节3036344535363432异或得:E7F0498101C8FFF3

得到的结果进行单倍长mac加密得:63502A0570BCE23F,转换为十六个HEXDECIMAL:3633353032413035  3730424345323346,取前8个字节为MAC值,即:3633353032413035

用户输入的密码:

流程:

1:获取PAN:卡号右边起第2位取出12位,则为:55 00 00 00 01 04

2:用于PIN加密的PAN为:00 00 55 00 00 00 01 04

3: PINBLOCK:06 11 22 33 FF FF FF FF  (123456为用户输入PIN)

4:2和3异或得到:06117733FFFFFEFB

5:用PINKEY明文对4进行3DES加密,得到52域;(PINKEY 明文:1122334455667788 9900112233445566)

52域(个人标识码数据): DA 86 E7 B7 74 2E FA E4

53域(安全控制信息):26 00 00 00 00 00 00 00 (2表示为带主账号加密)

个人账号为:62 21 50 55 00 00 00 01 04 5

即:磁卡上的PAN为:55 00 00 00 01 04

则用于PIN加密的主账号为:0x00 0x00 0x55 0x00 0x00 0x00 0x01 0x04,与PINBLOCK异或的结果为:

DA 86 E7 B7 74 2E FA E4(PINKEY加密得密文),06117733FFFFFEFB(明文),则PINBLOCK为:06112233FFFFFFFF

用户输入的密码为:112233

12-03-31 16:39:14---->[Send]

02 01 73    60 00 00 00 03 60    31 00 31 54 32    02 10    70 3A 00 81 0E D0 8C 11    19 62 21 50 55 00 00 00 01 04 50    00 00 00     00 00 00 00 11 12    00 00 40    16 39 13    03 31    03 31    00    08 01 03 10 00    30 34 36 38 37 39 30 38 37 35 36 34    31 32 33 35 36 34    30 30    31 32 33 34 35 36 37 36    31 32 33 34 35 36 37 38 39 30 31 32 33 34 35    22 38 31 35 36 38 31 35 36 38 31 35 31 31 35 36 38 31 35 36 38 31 30    31 35 36    26 00 00 00 00 00 00 00    00 20 30 32 31 30 31 35 36 43 30 30 30 30 30 31 30 30 30 30 30 30    00 14 22 00 00 03 00 05 01    XX XX XX XX XX XX XX XX    03 FC

TDUP:60 00 00 00 03 60

报文头:31 00 31 54 32

数据类型:02 10

位图:70 3A 00 81 0E D0 8C 11       (0111 0000 0011 1010 0000 0000 1000 0001 0000 1110 1101 0000 1000 1100 0001 0001)

2域:(主账号)19 62 21 50 55 00 00 00 01 04 50

3域:(交易处理码) 00 00 00

4域:(交易金额)00 00 00 00 11 12

11域:(受卡方系统跟踪号)00 00 40

12域:(受卡方所在地时间) 16 39 13

13域:(受卡方所在地日期)03 31

15域:(清算日期)03 31

25域:(服务点条件码)00

32域:(受理方标识码)08 01 03 10 00

37域:(检索参考号)30 34 36 38 37 39 30 38 37 35 36 34

38域:(授权标识应答码)31 32 33 35 36 34

39域:(应答码)30 30

41域:(受卡机终端标识码)31 32 33 34 35 36 37 36

42域:(受卡方标识码)31 32 33 34 35 36 37 38 39 30 31 32 33 34 35

44域:(附加响应数据)22 38 31 35 36 38 31 35 36 38 31 35 31 31 35 36 38 31 35 36 38 31 30

49域:(交易货币代码)31 35 36

53域:( 安全控制信息)26 00 00 00 00 00 00 00

54域:(余额)00 20 30 32 31 30 31 35 36 43 30 30 30 30 30 31 30 30 30 30 30 30

60域:(自定义域)00 14 22 00 00 03 00 05 01

64域:(报文鉴别码)XX XX XX XX XX XX XX XX

MAC值:3035333637383245

3、解下面报文,详细写出各个域的内容,并说明这个报文的交易类型。

12-03-31 16:39:44---->[Receive]

02 01 16 60 00 03 00 00 60 31 00 31 54 32 02 00 70 20 04 80 0C C0 80 19 19 62 21 50 55 00 00 00 01 04 50 20 00 00 00 00 00 00 11 12 00 00 41 01 20 00 30 34 36 38 37 39 30 38 37 35 36 34 31 32 33 35 36 34 31 32 33 34 35 36 37 36 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 31 35 36 00 14 23 00 00 03 00 05 00 00 12 00 00 03 00 00 40 38 42 41 45 41 30 32 42 03 AB

TDUP:60 00 03 00 00

报文头:60 31 00 31 54 32                           60:磁条卡金融支付  31:2010年银联POS规范版本  0:正常交易状态  0:无处理要求   31 54 32:2010年银联POS规范版本

数据类型:02 00                                     金融类请求

位图:70 20 04 80 0C C0 80 19                       具体存在哪些域(0111 0000 0010 0000 0000 0100 1000 0000 0000 1100 1100 0000 1000 0000 0001 1001)

【2】(主账号):19 62 21 50 55 00 00 00 01 04 50    主账号:6221505500000001045

【3】(交易处理码):20 00 00                        20:退款  00 00:默认

【4】(交易金额):00 00 00 00 11 12                 交易金额:11.12元

【11】(受卡方系统跟踪号):00 00 41                 POS为每一笔交易产生的顺序编号(1-999999)

【22】(服务点输入方式码):01 20                    01:手工  2:交易中不保护PIN

【25】(服务点条件码):00                           正常提交,与联网联合规范取值关系一致

【37】(检索参考号):30 34 36 38 37 39 30 38 37 35 36 34                  POS中心为交易分配的流水号,在应答报文中下传给POS终端作为对账参考号,并用于事后查证。

【38】(授权标识应答码):31 32 33 35 36 34                                在预授权交易中,发卡方将在成功的应答消息中返回一个有效的授权号,以供后续交易使用。

【41】(受卡机终端标识码):31 32 33 34 35 36 37 36                        该标识码在POS中心的网络中唯一标识一个终端,不能重复。

【42】(受卡方标识码):31 32 33 34 35 36 37 38 39 30 31 32 33 34 35       受卡方的标识码,即商户代码。

【49】(交易货币代码):31 35 36                                           156:人民币的货币代码

【60】(自定义域):00 14 23 00 00 03 00 05 00                             00 14:数据长度   23:消费撤销/冲正   00 00 03:批次号   00 0:网络管理信息码     5:可接触式界面读取IC卡

1:上一笔交易不是IC卡交易或是一笔成功的IC卡交易  1:支持部分扣款和返回余额标志

【61】 (原始信息域):00 12 00 00 03 00 00 40                              0012:长度   00 00 03:原始交易批次号   00 00 40:原始交易POS流水号

【64】(报文鉴别码):38 42 41 45 41 30 32 42                              报文的MAC值

12-03-31 16:39:45---->[Send]

02 01 43    60 00 00 00 03      60 31 00 31 54 32    02 10    70 3A 00 81 0E D0 80 11    20 62 21 50 55 00 00 00 01 04 50    20 00 00    00 00 00 00 11 12    00 00 41    16 39 45    03 31    03 31    00    08 01 03 10 00    30 34 36 38 37 39 30 38 37 35 36 34    31 32 33 35 36 34    30 30    31 32 33 34 35 36 37 36    31 32 33 34 35 36 37 38 39 30 31 32 33 34 35    22 38 31 35 36 38 31 35 36 38 31 35 31 31 35 36 38 31 35 36 38 31 30    31 35 36    00 14 23 00 00 03 00 05 00    39 32 32 43 41 31 44 34    03 F9

TDUP:60 00 00 00 03

报文头:60 31 00 31 54 32                             60:磁条卡金融支付  31:2010年银联POS规范版本  0:正常交易状态  0:无处理要求   31 54 32:2010年银联POS规范版本

数据类型:02 10                                       金融类应答

位图:70 3A 00 81 0E D0 80 11                         具体存在哪些域 (0010 0000 0011 1010 0000 0000 1000 0001 0000 1110 1101 0000 1000 0000 0001 0001)

【2】(主账号):20 62 21 50 55 00 00 00 01 04 50      账号:62 21 50 55 00 00 00 01 04 50

【3】(交易处理码):20 00 00                          20:退款  00 00:默认

【4】(交易金额):00 00 00 00 11 12                   交易金额:11.12元

【11】(受卡方系统跟踪号):00 00 41                   POS为每一笔交易产生的顺序编号(1-999999)

【12】(受卡方所在地时间):16 39 45                  受卡方所在地时间:16时39分45秒

【13】(受卡方所在地日期):03 31                     受卡方所在地日期:3月31日

【15】(清算日期):03 31                             清算日期:3月31日

【25】(服务点条件码):00                             正常提交,与联网联合规范取值关系一致

【32】(受理方标识码):08 01 03 10 00                受理方标识码

【37】(检索参考号):30 34 36 38 37 39 30 38 37 35 36 34     POS中心为交易分配的流水号,在应答报文中下传给POS终端作为对账参考号,并用于事后查证。

【38】(授权标识应答码):31 32 33 35 36 34                   该标识码在POS中心的网络中唯一标识一个终端,不能重复。

【39】(应答码):30 30

【41】(受卡机终端标识码):31 32 33 34 35 36 37 36           该标识码在POS中心的网络中唯一标识一个终端,不能重复。

【42】(受卡方标识码):31 32 33 34 35 36 37 38 39 30 31 32 33 34 35     商户代码

【44】(附加响应数据):22 38 31 35 36 38 31 35 36 38 31 35 31 31 35 36 38 31 35 36 38 31 30   表示表示发卡行标识码和商户结算行标识码

【49】(交易货币代码):31 35 36                       156:人民币的货币代码

【60】(自定义域):00 14 23 00 00 03 00 05 00         00 14:数据长度   23:消费撤销/冲正   00 00 03:批次号   00 0:网络管理信息码     5:可接触式界面读取IC卡

1:上一笔交易不是IC卡交易或是一笔成功的IC卡交易  1:支持部分扣款和返回余额标志

Java解析银联报文_银联ISO8583报文解析过程相关推荐

  1. java发送iso8583报文接口框架,ISO8583报文工具类(组装和解析报文)

    package com.lsy.common.util; import java.io.FileInputStream; import java.io.UnsupportedEncodingExcep ...

  2. java 传送解析8583报文_java发送ISO8583报文接口案例

    [实例简介] java发送ISO8583报文实现平安银行支付接口 [实例截图] [核心代码] pingAnBank └── pingAnBank ├── build.xml ├── client │  ...

  3. java 解析日期格式_日期/时间格式/解析,Java 8样式

    java 解析日期格式 自Java 几乎 开始以来,Java开发人员就通过java.util.Date类(自JDK 1.0起)和java.util.Calendar类(自JDK 1.1起 )来处理日期 ...

  4. java解析dxf文件_浅析JVM方法解析、创建和链接

    一:前言 上周末写了一篇文章<你知道Java类是如何被加载的吗?>,分析了HotSpot是如何加载Java类的,干脆趁热打铁,本周末再来分析下Hotspot又是如何解析.创建和链接类方法的 ...

  5. 解析mysqlbinlog日志_关于mysql-binlog日志解析框架

    欢迎广大码农爱好者向我推荐框架,我会择其精要.有趣者分享给大家. 今天下午,有同学献出了一款软件,说是海外澳洲番邦向朕进贡的,于是品尝了一番. 软件名称:mysql-binlog-connector ...

  6. java生成报文_生成xml报文方法并输出

    创建根节点 Element root= new Element("root"); //创建报文体 Element body = new Element("body&quo ...

  7. can test 接收报文_获取CAN报文并解析

    一.获得CAN报文的过程 准备软硬件环境,硬件周立功CAN卡,软件使用ZLGCANTest,安装在电脑上:通过CAN卡连接整车CAN或者调试端口,通过软件交互界面获取CAN报文. 二.CAN2.0B报 ...

  8. java 银联接口_银联支付接口整合开发(java)

    一.环境1.Eclipse Juno R22. Tomcat 73. Jersey 2.7 下载地址(https://jersey.java.net/download.html)二.流程1.Eclip ...

  9. java 银联接口_银联接口测试——详细(JAVA)

    准备材料 1.注册账号 https://open.unionpay.com/ajweb/register?locale=zh_CN 2.▼登录账号 -->帮助中心--> 下载,选择网关支付 ...

最新文章

  1. DeepMind新论文:给侧面照片,AI给你脑补出正面
  2. save_path is not a valid checkpoint
  3. system文件_大文件拷贝,试试NIO的内存映射
  4. python中解决中文乱码
  5. http://www.cda.cn/view/25735.html
  6. php 文件加载方式
  7. mariadb数据库服务
  8. 埋点是什么意思_(一百二十二)埋点方案举例,如何做埋点方案
  9. java session 生命周期_java之hibernate之session中对象的生命周期
  10. SQL Server 2000中的完整备份、差异备份操作
  11. Unable to add window -- token null is not for an application
  12. 侧滑面板(对viewGroup的自定义)
  13. 编程之美2.2 不要被阶乘吓到
  14. Linux下使用QQ
  15. 博图如何上载wincc程序_博途Wincc:新手4分钟学会两种VB语句,实现西门子Wincc V14 判断功能...
  16. Eucalyptus简介
  17. java 找不到符号
  18. 【Python基础知识整理】
  19. 美国参议员建议立法“黑掉国土安全部”
  20. 5G QoS控制原理专题详解-SM策略数据的源头

热门文章

  1. 阿里巴巴图标库(iconfont)使用
  2. ECCV 2022《Tip-Adapter: Training-free Adaption of CLIP for Few-shot Classification》
  3. 智慧校园是实现智慧教育的必由之路
  4. 如何持续、正确、安全地把材料性能检测试验做好:“清单革命”读书报告
  5. 阿里云ECS CentOS 7 安装图形化桌面
  6. HTML+CSS美食静态网页设计——简单牛排美食餐饮(9个页面)公司网站模板企业网站实现
  7. C++入门教程(四十二):函数参数使用引用
  8. Scrapy 豆瓣搜索页爬虫
  9. python实现的电影票房数据可视化
  10. 个人管理:放松离合与换档时刻