银联规定的MAC算法_转载

银联POS终端mac算法


2013-04-15
11:01:27|  分类: android|举报|字号 订阅

OS终端采用ECB的加密方式,简述如下:
a)
将欲发送给POS中心的消息中,从消息类型(MTI)到63域之间的部分构成MAC ELEMEMENT BLOCK (MAB)。
b)
对MAB,按每8个字节做异或(不管信息中的字符格式),如果最后不满8个字节,则添加“0X00”。
示例 :
MAB = M1 M2 M3
M4
其中:
M1 = MS11
MS12 MS13 MS14 MS15 MS16 MS17 MS18
M2 = MS21 MS22
MS23 MS24 MS25 MS26 MS27 MS28
M3 = MS31 MS32 MS33
MS34 MS35 MS36 MS37 MS38
M4 = MS41 MS42 MS43 MS44
MS45 MS46 MS47 MS48

按如下规则进行异或运算:
 
MS11 MS12 MS13 MS14 MS15 MS16 MS17 MS18
XOR) MS21
MS22 MS23 MS24 MS25 MS26 MS27 MS28
---------------------------------------------------
TEMP BLOCK1 = TM11 TM12 TM13 TM14 TM15 TM16 TM17
TM18

然后,进行下一步的运算:
TM11 TM12
TM13 TM14 TM15 TM16 TM17 TM18
XOR) MS31 MS32 MS33
MS34 MS35 MS36 MS37 MS38
---------------------------------------------------
TEMP BLOCK2 = TM21 TM22 TM23 TM24 TM25 TM26 TM27
TM28

再进行下一步的运算:
TM21 TM22 TM23 TM24 TM25 TM26 TM27 TM28
XOR)
MS41 MS42 MS43 MS44 MS45 MS46 MS47 MS48
---------------------------------------------------
RESULT BLOCK = TM31 TM32 TM33 TM34 TM35 TM36 TM37
TM38

c)
将异或运算后的最后8个字节(RESULT BLOCK)转换成16 个HEXDECIMAL:
RESULT BLOCK = TM31 TM32 TM33 TM34 TM35 TM36 TM37
TM38
= TM311 TM312 TM321 TM322 TM331 TM332 TM341
TM342 ||
TM351 TM352 TM361 TM362 TM371 TM372 TM381
TM382

d) 取前8
个字节用MAK加密:
ENC BLOCK1 = eMAK(TM311 TM312 TM321
TM322 TM331 TM332 TM341 TM342)
= EN11 EN12 EN13
EN14 EN15 EN16 EN17 EN18

e)
将加密后的结果与后8 个字节异或:
EN11 EN12 EN13 EN14 EN15 EN16
EN17 EN18
XOR) TM351 TM352 TM361 TM362 TM371 TM372
TM381 TM382
------------------------------------------------------------
TEMP BLOCK= TE11 TE12 TE13 TE14 TE15 TE16 TE17
TE18

f) 用异或的结果TEMP
BLOCK 再进行一次单倍长密钥算法运算。
ENC BLOCK2 = eMAK(TE11 TE12
TE13 TE14 TE15 TE16 TE17 TE18)
= EN21 EN22 EN23
EN24 EN25 EN26 EN27 EN28

g)
将运算后的结果(ENC BLOCK2)转换成16 个HEXDECIMAL:
ENC BLOCK2 =
EN21 EN22 EN23 EN24 EN25 EN26 EN27 EN28
= EM211
EM212 EM221 EM222 EM231 EM232 EM241 EM242 ||
  EM251 EM252 EM261 EM262 EM271 EM272 EM281
EM282
示例 :
ENC
RESULT= %H84, %H56, %HB1, %HCD, %H5A, %H3F, %H84, %H84
转换成16
个HEXDECIMAL:
“8456B1CD5A3F8484”
h)
取前8个字节作为MAC值。
取”8456B1CD”为MAC值。

时间: 2024-10-09 05:33:31

银联规定的MAC算法_转载的相关文章

delphi 银联POS终端MAC算法(单倍DES算法)

//主窗体界面代码 procedure TForm1.Button1Click(Sender: TObject);  var    lv_context : string;    lv_acontext : TMyByteArray;    lv_key : string; begin   lv_context := HexToString(Trim(Edit1.Text));   lv_key := Trim(Edit3.Text);   strToByteArray(lv_context, 

HDU 1162 Eddy's picture (prime算法_裸题)

Problem Description Eddy begins to like painting pictures recently ,he is sure of himself to become a painter.Every day Eddy draws pictures in his small room, and he usually puts out his newest pictures to let his friends appreciate. but the result i

STL_算法(21)_ STL_算法_填充新值

STL_算法_填充新值 fill(b, e, v) fill(b, n, v) generate(b, n, p) generate_n(b, n, p) #include<iostream> #include<algorithm> #include<vector> #include<list> // #include<string> using namespace std; int main() { list<string> sli

jpg&quot; title=&quot;高凌风25岁高凌风25岁女儿私照曝光 弃学业进娱圈发展 _ 转载于本草百年养生堂

葛晓洁排行老三,父母离异后,她10岁时曾和高凌风见过面,从此音讯全无.男生美白小窍门高凌风经济能力好些后,不断透过亲友寻女,2010年,文洁因女儿大学毕业,终于答应父女重逢.葛晓洁与金友庄相处像朋友,都喊她"小金阿姨".高凌风说,13年来葛晓洁一点儿都不知道他挂念着她.因为文洁另有感情,又生了儿子,葛晓洁跟着阿姨与姨丈生活,不过妈妈和阿姨对她管教很严格. 63岁台湾一代歌王高凌风因罹患癌症不幸去世,很多明星听闻这一消息,都纷纷以不同方式表示哀悼.让我们一起了解下他的子女们 高凌风有过三

POS终端MAC算法-C语言实现

POS终端MAC算法-C语言实现

消息摘要算法-MAC算法系列

一.简述 mac(Message Authentication Code,消息认证码算法)是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥.因此MAC算法也经常被称作HMAC算法.关于hmac算法的详情可以参看RFC 2104(http://www.ietf.org/rfc/rfc2104.txt),这里包含了HmacMD5算法的C语言实现. 这里需要说明的是经过mac算法得到的摘要值也可以使用十六进制编码表示,其摘要值得长度与实现算法的摘要值长度相同.例如 Hmac

Java 理论与实践: 非阻塞算法简介--转载

在不只一个线程访问一个互斥的变量时,所有线程都必须使用同步,否则就可能会发生一些非常糟糕的事情.Java 语言中主要的同步手段就是synchronized 关键字(也称为内在锁),它强制实行互斥,确保执行 synchronized 块的线程的动作,能够被后来执行受相同锁保护的synchronized 块的其他线程看到.在使用得当的时候,内在锁可以让程序做到线程安全,但是在使用锁定保护短的代码路径,而且线程频繁地争用锁的时候,锁定可能成为相当繁重的操作. 在 “流行的原子” 一文中,我们研究了原子

洗牌算法(转载)

作者:flyinghearts出处:http://www.cnblogs.com/flyinghearts/ 又一次看到讨论"洗牌"算法的文章,奇怪不少人喜欢造轮子,但造的轮子却远没有STL的random_shuffle好用. 若某个序列里面的每个元素在每个位置已经等概率出现,那么新增加一个元素,只要新增加的元素和所有元素进行等概率交换,则新序列中每个元素在每个位置仍是等概率出现.(若原来有n个元素,新增加的第n+1个元素在任一位置b的概率显然是1/(n+1),在同一位置b,原来的n个

DES、3DES 加解密;MAC算法

/// <summary> /// DES.3DES 加解密:MAC算法 /// </summary> public sealed class DES_Cryptographycs { #region --- 字段 Begin --- private PaddingMode mPaddingMode; private CipherMode mCipherMode; private byte[] mbyKey; private byte[] mbyIV; #endregion ---