POS终端MAC的算法

将欲发送给POS中心的消息中,从消息类型(MTI)到63域之间的部分构成Mac Element Block(MAB)。
对MAB,按每8个字节做异或,如果最后不满8个字节,则添加”0x00”。

示例

MAB = M1 M2 M3

其中,
M1 = M11 M12 M13 M14 M15 M16 M17 M18
M2 = M21 M22 M23 M24 M25 M26 M27 M28
M3 = M31 M32 M33 M34 M35 M36 M37 M38

按如下规则进行异或运算:
M11 M12 M13 M14 M15 M16 M17 M18
(XOR) M21 M22 M23 M24 M25 M26 M27 M28
得到: T11 T12 T13 T14 T15 T16 T17 T18

再次进行异或处理
T11 T12 T13 T14 T15 T16 T17 T18
(XOR) M31 M32 M33 M34 M35 M36 M37 M38
得到: T21 T22 T23 T24 T25 T26 T27 T28

如何还有字节,继续异或

将异或运算后的最后8个字节转换为16个Hexdecimal:
取前8个字节用MAK加密
将加密后的结果与后8个字节异或
将异或后的结果再一次进行单倍长密钥算法运算
将运算后的结果转换为16个Hexdecimal
取前八个字节作为MAC值

MAC值的作用

MAC值用于鉴别消息在传送途中是否被篡改。当交易消息被发送者发出之前,应由发送者产生MAC;接收者收到消息后,将重新计算MAC值,若相同,则标明消息未被篡改。

你可能感兴趣的:(POS终端MAC的算法)