POS终端采用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值。

主要是Mak算法不知为何物 还有单倍长密钥算法布置为何物

2011年4月20日 14:12

java mac算法_Mac算法的java实现相关推荐

  1. chrome java mac下载_Mac上Java+selenium+Chrome环境配置

    前言 本人之前在window下使用Java+selenium+Firefox进行UI测试,由于window本子集显烧了更换了MacBook Pro,所以开始研究如何在Mac环境下进行UI自动化测试.但 ...

  2. java mac 怎么删_做java服务器开发,并发布到linux,那MacBookPro开发是绝佳工具

    最近一直有学弟问买mbp开发Java好不好.我先给结论:不但好而且是最佳. 开始我用买MacBookPro,一是好奇和想了解不一样的电脑,二是MPBP太tm的精美了,第一次看到它,感觉之前塑料味特浓的 ...

  3. Java工具类--雪花算法生成全局唯一ID

    import java.lang.management.ManagementFactory; import java.net.InetAddress; import java.net.NetworkI ...

  4. Java内存组成GC算法

    Java内存组成&GC算法 @(JAVA)[java] Java内存组成GC算法 一内存组成 一Java程序的内存组成 1Java堆 2方法区含常量池永久代 3栈 1Java虚拟机栈 2本地方 ...

  5. long 雪花算法_雪花算法(SnowFlake)Java版

    算法原理 1位标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0 41位时间截(毫秒级),注意,41位时间截不是存储当前时间的时间截, ...

  6. 什么是哈希(Hsah)算法,哈希算法的作用以及Java中常见的哈希算法的使用案例。

    一.了解哈希算法 1.简介 Hash算法(又称摘要算法),一般翻译做散列或音译为哈希,哈希算法具有不可逆性.压缩性.高效性等重要特点,可以将任意长度的数据转换成一个固定长度的哈希值.该输出就是散列值. ...

  7. java培训:Java的十大算法

    想要学好java语言,就要打好基础,java要学习的东西有很多,今天小编就来和大家说下java的十大算法. 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个 ...

  8. Java常见的面试算法题:实现两个线程交替打印1到100的数

    Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...

  9. java基础----数据结构与算法----Java API:集合 以及 排序相关API

    概述: 基本数据结构与算法在jdk中都有相应的API 数组+java.util.Arrays java中的集合类 Collection-->List+Set-->接口的实现类 Map   ...

  10. 【使用Java编写的B*算法】

    使用XP系统之家Java编写的B*算法 package rpg.stage.path; import java.util.ArrayList; import java.util.HashSet; im ...

最新文章

  1. PaddlePaddle, TensorFlow, MXNet, Caffe2 , PyTorch五大深度学习框架2017-10最新评测
  2. 云监控Agent指南-Linux版
  3. boost::pool模块实现验证是否 malloc/free 宏一切仍然正常的测试程序)
  4. 牛客网暑期ACM多校训练营(第十场)F.Rikka with Line Graph
  5. linux内核测试,Linux内核测试的生命周期
  6. 泡水十几秒仍能工作 小米手机2也能防水了
  7. jQuery正则表达式实现表单验证功能(注册)
  8. BeanUtils,PropertyUtils
  9. 【分享】测试小白如何测试手机整机系统测试
  10. Neural Entity Linking综述【详细版】
  11. 【React】【Ant Deign】手机验证码登录效果实现
  12. BZOJ4049 [Cerc2014] Mountainous landscape
  13. 爪哇国新游记之十三----XML文件读写
  14. iOS音视频开发七:视频采集
  15. Android中从视频中提取音频
  16. chrome谷歌浏览器扩展程序推荐: 一键读图OCR
  17. 奥地利和德国的装饰艺术
  18. 三种常数项级数收敛准则。
  19. 欢乐拼购商城APP系统软件模式解析源代码
  20. AI赋能在线教育 , 大数据驱动下 , 精准营销如何布局?

热门文章

  1. MySQL日志之Undo日志
  2. 博科导向器升级固件-U盘
  3. *sql注入实战--记一次绕过WTS-WAF拦截注入**
  4. 阿里云 搭建flink 后 web界面可以访问 但是没有task manager节点存活
  5. android推箱子实验报告,android开发——推箱子小游戏(前序)
  6. 职场 | 因特尔(Intel)无线modem系统设计师实习岗位面试总结
  7. Linux那些事儿之我是U盘(16)冰冻三尺非一日之寒
  8. mysql人物画像_用户画像智能匹配,用户画像的算法有哪些?
  9. 三大跳槽传闻,信了你就输了!
  10. Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied for user