java实现基于SM4算法计算联机MAC数据
来源:互联网 发布:美工自学多久能自己做 编辑:程序博客网 时间:2024/05/20 08:22
商业银行ATM系统向银行前置系统发送请求报文时,会在报文中加上一串加密后的MAC数据,前置校验此MAC数据验证秘钥是否同步,报文是否完整。用于加密的原MAC数据一般是和前置约定好的报文中部分请求字段。
联机MAC数据实际上就是用一串128位的秘钥基于SM4算法对需要计算MAC的数据做加密处理。
例:
秘钥:C5945F5B DF1E2DD8 3C6BFCA9 699975F3
用于MAC计算的明文数据:PCK1209339432640F07BEC962141300010024402220516956
联机MAC的计算规则如下:
将用于计算MAC的明文数据转换成16进制字符串,按32位长度分组,不足32位补0,转换后的数据共4组,如下:
50434B31 32303933 33393433 32363430
46303742 45433936 32313431 33303030
31303032 34343032 32323035 31363935
36000000 00000000 00000000 00000000
步骤一:第0组明文和秘钥加密出第0组密文
步骤二:第1组明文和第0组密文异或得到异或结果
步骤三:步骤二的异或结果和秘钥加密得到第1组密文
步骤四:第2组明文和第1组的密文异或得到异或结果
步骤五:步骤四的异或结果和秘钥加密得到第2组密文
步骤六:第3组明文和第2组密文异或得到异或结果
。。。。
。。。。
步骤N:最后一组明文和上一组密文异或,异或结果和秘钥加密得到的就是最终的MAC密文数据
完整代码连接:http://download.csdn.net/detail/yewucainiao/9893011
- java实现基于SM4算法计算联机MAC数据
- 分组密码SM4算法的代码实现
- SM4国密算法实现分析
- SM4国密算法实现分析
- PHP实现国密算法SM4
- 国密算法SM4,3DES算法和AES三种加密算法的java实现
- SM4分组密码算法
- SM4加密算法的实现
- java中的SM4
- 国产SM4密码算法详解
- sm4
- SM4
- 使用 Google App Engine 实现基于云计算的小型 Java 数据服务应用
- 国密SM4对称算法实现说明(原SMS4无线局域网算法标准)
- 国密SM4对称算法实现说明(原SMS4无线局域网算法标准)
- 国密SM4对称算法实现说明(原SMS4无线局域网算法标准)
- spring集成shiro实现登录认证自定义验证功能(认证采用国密SM4算法)
- Java实现Tank大战联机版
- STL库容器vector Constructors构造函数
- 表单提交之上传图片
- 读过的优秀博客
- 普通人如何突破贫穷的层级,成为人上之人
- java单例模式案例,及单例体现的关键
- java实现基于SM4算法计算联机MAC数据
- 散列表(哈希表)
- 一步步结合实例学习retrofit2
- 无约束非线性优化经典算法学习笔记
- LeetCode Weekly Contest 40(3)
- WUST 1945 局域网(最小生成树入门+克鲁斯卡尔算法)
- 浅析安卓事件分发机制源码
- 用eclipse在HADOOP中的一些系统指令操作
- 不能摆脱别人的标准,再大的成就也总有遗憾