java mac算法_Mac算法的java实现
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实现相关推荐
- chrome java mac下载_Mac上Java+selenium+Chrome环境配置
前言 本人之前在window下使用Java+selenium+Firefox进行UI测试,由于window本子集显烧了更换了MacBook Pro,所以开始研究如何在Mac环境下进行UI自动化测试.但 ...
- java mac 怎么删_做java服务器开发,并发布到linux,那MacBookPro开发是绝佳工具
最近一直有学弟问买mbp开发Java好不好.我先给结论:不但好而且是最佳. 开始我用买MacBookPro,一是好奇和想了解不一样的电脑,二是MPBP太tm的精美了,第一次看到它,感觉之前塑料味特浓的 ...
- Java工具类--雪花算法生成全局唯一ID
import java.lang.management.ManagementFactory; import java.net.InetAddress; import java.net.NetworkI ...
- Java内存组成GC算法
Java内存组成&GC算法 @(JAVA)[java] Java内存组成GC算法 一内存组成 一Java程序的内存组成 1Java堆 2方法区含常量池永久代 3栈 1Java虚拟机栈 2本地方 ...
- long 雪花算法_雪花算法(SnowFlake)Java版
算法原理 1位标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0 41位时间截(毫秒级),注意,41位时间截不是存储当前时间的时间截, ...
- 什么是哈希(Hsah)算法,哈希算法的作用以及Java中常见的哈希算法的使用案例。
一.了解哈希算法 1.简介 Hash算法(又称摘要算法),一般翻译做散列或音译为哈希,哈希算法具有不可逆性.压缩性.高效性等重要特点,可以将任意长度的数据转换成一个固定长度的哈希值.该输出就是散列值. ...
- java培训:Java的十大算法
想要学好java语言,就要打好基础,java要学习的东西有很多,今天小编就来和大家说下java的十大算法. 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个 ...
- Java常见的面试算法题:实现两个线程交替打印1到100的数
Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...
- java基础----数据结构与算法----Java API:集合 以及 排序相关API
概述: 基本数据结构与算法在jdk中都有相应的API 数组+java.util.Arrays java中的集合类 Collection-->List+Set-->接口的实现类 Map ...
- 【使用Java编写的B*算法】
使用XP系统之家Java编写的B*算法 package rpg.stage.path; import java.util.ArrayList; import java.util.HashSet; im ...
最新文章
- PaddlePaddle, TensorFlow, MXNet, Caffe2 , PyTorch五大深度学习框架2017-10最新评测
- 云监控Agent指南-Linux版
- boost::pool模块实现验证是否 malloc/free 宏一切仍然正常的测试程序)
- 牛客网暑期ACM多校训练营(第十场)F.Rikka with Line Graph
- linux内核测试,Linux内核测试的生命周期
- 泡水十几秒仍能工作 小米手机2也能防水了
- jQuery正则表达式实现表单验证功能(注册)
- BeanUtils,PropertyUtils
- 【分享】测试小白如何测试手机整机系统测试
- Neural Entity Linking综述【详细版】
- 【React】【Ant Deign】手机验证码登录效果实现
- BZOJ4049 [Cerc2014] Mountainous landscape
- 爪哇国新游记之十三----XML文件读写
- iOS音视频开发七:视频采集
- Android中从视频中提取音频
- chrome谷歌浏览器扩展程序推荐: 一键读图OCR
- 奥地利和德国的装饰艺术
- 三种常数项级数收敛准则。
- 欢乐拼购商城APP系统软件模式解析源代码
- AI赋能在线教育 , 大数据驱动下 , 精准营销如何布局?
热门文章
- MySQL日志之Undo日志
- 博科导向器升级固件-U盘
- *sql注入实战--记一次绕过WTS-WAF拦截注入**
- 阿里云 搭建flink 后 web界面可以访问 但是没有task manager节点存活
- android推箱子实验报告,android开发——推箱子小游戏(前序)
- 职场 | 因特尔(Intel)无线modem系统设计师实习岗位面试总结
- Linux那些事儿之我是U盘(16)冰冻三尺非一日之寒
- mysql人物画像_用户画像智能匹配,用户画像的算法有哪些?
- 三大跳槽传闻,信了你就输了!
- Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied for user