POS终端在与POS中心进行数据交易之前,需要生产MAC(报文鉴别码),这样POS中心在收到POS终端报文后,可以对报文也进行MAC认证,保证报文的正确性。
这篇文章主要讲解如何利用报文数据生成MAC。主要有以下步骤:(本次主要采用单倍长DES加解密算法)
1.通过解析向POS中心签到后返回的报文中的62域获得MAC的工作密钥的密文skey。
2.利用后台和POS终端规定好的密钥解密,得到MAC的工作密钥明文mkey。
3.将欲发送给POS中心的消息中,从消息类型(MTI)到63域之间的部分构成MACELEMEMENT BLOCK (MAB)。MAB=M1M2M3M4M5M6....Mn
其中:
M1 = MS11 MS12MS13 MS14 MS15 MS16 MS17 MS18
M2 = MS21 MS22MS23 MS24 MS25 MS26 MS27 MS28
M3 = MS31 MS32MS33 MS34 MS35 MS36 MS37 MS38
M4 = MS41 MS42MS43 MS44 MS45 MS46 MS47 MS48
如果最后一个Mn不足8位,需要补0.例如
Mn = MSn1 MSn2 MSn3 MSn4 MSn5 MSn6 00 00
T1 = M1 xor M2
T2 = T1 xor M3
............
T n = T n-1 xor M n+1</