1.磁条卡原始数据

MPOS需要保证从磁条卡满足《GBT_19584-2010_银行卡磁条信息格式和使用规范》中规定的数据格式。以二磁道为例,设备读取的磁道数据为:

;6227003390501149081=50125204813420000?

2.加密算法

磁条信息加密采用标准的DESede,双倍长密钥,ECB,NoPadding模式进行加解密。用于磁条信息加密的双倍长密钥在MPOS进行设备签到时进行获取。在进行加密前,需要将磁道数据变换为标准的ASCII码字节流,如果字节流长度不是8的整数倍,在字节流后先补一个字节0x80,然后继续补0x00直到字节流的长度为8的整数倍,最后将补位的数据进行3DES加密。

3.加解密的java实现:

package com.qdone;import org.apache.commons.codec.binary.Hex;
import org.apache.commons.lang3.ArrayUtils;import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;public class Main {public static void main(String[] args) throws Exception {// 磁道2数据String track2=";6227003390501149081=50125204813420000?";System.out.println("磁道原始数据:"+track2);byte[] track2Bytes=track2.getBytes("ASCII");// 补字节80track2Bytes=ArrayUtils.add(track2Bytes,(byte)0x80);//判断补多少字节是8的整数倍int pad=8-track2Bytes.length % 8;// 用字节0补全for(int i=0;i<pad;i++) {track2Bytes=ArrayUtils.add(track2Bytes,(byte)0x00);}String track2BytesHex=Hex.encodeHexString(track2Bytes);System.out.println("处理后的数据:"+track2BytesHex);// 磁道密钥,双倍长,32位,16字节String key="12345678ABCDEF00ABCDEF0012345678";// 将密钥变为三倍长,48位,24字节key=key+ key.substring(0, 16);byte[] keyBytes=Hex.decodeHex(key.toCharArray());// 构造密钥SecretKey keySpec = new SecretKeySpec(keyBytes, "DESede");// 生成加密算法Cipher cipher=Cipher.getInstance("DESede/ECB/NoPadding");// 初始化为加密模式cipher.init(Cipher.ENCRYPT_MODE,keySpec);// 加密byte[] encData=cipher.doFinal(track2Bytes);String encHex=Hex.encodeHexString(encData);System.out.println("磁道加密数据:"+encHex);// 解密cipher.init(Cipher.DECRYPT_MODE,keySpec);byte[] decData=cipher.doFinal(encData);String decHex=Hex.encodeHexString(decData);System.out.println("磁道解密数据:"+decHex);// 找到最后出现的80int idx=ArrayUtils.lastIndexOf(decData,(byte)0x80);// 去掉补位数据decData=ArrayUtils.subarray(decData,0,idx);// 字节流转字符串String track2Data=new String(decData,"ASCII");System.out.println("磁道原始数据:"+track2Data);}
}

运行后的输出:

磁道原始数据:;6227003390501149081=50125204813420000?
处理后的数据:3b363232373030333339303530313134393038313d35303132353230343831333432303030303f800000000000000000
磁道加密数据:9b9346badaab1ba09fb5174b1e49c1d669876fb57bc3731828997b61ca97050de00d35dee3ce79b8f48ab9725bb20af1
磁道解密数据:3b363232373030333339303530313134393038313d35303132353230343831333432303030303f800000000000000000
磁道原始数据:;6227003390501149081=50125204813420000?

MPOS银行卡磁条信息加密规范相关推荐

  1. 境内银行卡磁条信息格式

    第1磁道的数据内容 第1磁道数据编码最大记录长度为79个字符,数据字段的顺序和长度应与表1给出的第1磁道数据格式一致. 第1磁道为只读磁道.   第2磁道的数据内容 第2磁道数据编码最大记录长度为40 ...

  2. 27位名校博士选择入职中学?!顶尖人才浪费了吗?

    点击上方"CVer",选择加"星标"置顶 重磅干货,第一时间送达 本文转载自:募格学术 | 来源:中国青年报.南方+客户端 顶尖高校毕业的博士.博士后到中学教书 ...

  3. 《银行磁条卡销售点终端规范》

    [发布单位]中国人民银行   [发布文号]-----------   [发布日期]2001-03-30   [生效日期]2001-05-01   [失效日期]----------   [所属类别]国家 ...

  4. 中国金融集成电路(IC)卡规范

    转载自:https://blog.csdn.net/supergame111/article/details/33730809 一.中国金融IC卡规范发展历程 金融IC卡是采用集成电路(IC)技术和金 ...

  5. 中国金融集成电路(IC)卡规范(PBOC3.0)简单介绍

    一.中国金融IC卡规范发展历程     金融IC卡是采用集成电路(IC)技术和金融行业标准,具有消费信贷.转账结算和现金存取等功能的金融支付工具.金融IC卡自20世纪80年代中期在法国问世以来,逐步被 ...

  6. 好消息:部分银行磁条卡更换芯片卡

    前段时间,本人已经深度解析了磁条卡频频丢款事件以及犯罪人员的作案手段,而今有望更换芯片卡,部分银行已经开始实施.粤嵌了解到,芯片应用到银行卡内,不久便会得到广泛的普及,相信这一重大举措会使得犯罪分子无 ...

  7. 金融反欺诈-交易基础介绍 - 阿里巴巴云誉【转载】

    转载{http://www.vuln.cn/7136} 0×00 前言 一.简介 如今,互联网金融比较火热,金融欺诈也变得非常普遍,金融反欺诈也应运而生.本文将主要介绍下金融交易中的一些基本内容,并简 ...

  8. 深入浅出滴聊聊NFC充值

    NFC技术培训文档  技术特性与优势:NFC工作于13.56MHz,最大传输速度只有424kbit/s,有效传数据率距离只有10cm左右(实际上公交卡和手机的NFC距离一般连5cm都不到),但它的优 ...

  9. 大数据下报警运营重铸“安全防范”新思维

    今年10月26日央视新闻频道<焦点访谈>报道了去年12月17日午夜前后,一伙不法分子通过在ATM机上加装假读卡器和偷摄装置,窃取客户的银行卡磁条信息及密码后克隆伪卡,造成当地14家银行的1 ...

最新文章

  1. 延长EEPROM使用寿命的程序优化方法
  2. dede如何做SEO,一起探讨下
  3. c语言求树上节点的双亲,用非递归算法求二叉树叶子结点的c语言代码怎样写?...
  4. fastadmin在html中查询数据,FastAdmin模块开发快速上手
  5. 基于bootstrap_登陆页面
  6. C#面向对象15 多态
  7. MySql-触发器操作
  8. 10万伪原创同义词替代词库ACCESS/EXCELL数据库
  9. 600岁故宫“新政”“萌萌哒”
  10. c语言 统计素数并求和
  11. 如何彻底卸载3dmax2020_3DMAX 2020安装失败,怎么把3DMAX 2020彻底卸载删除干净重新安装?...
  12. 学生学籍管理系统课程设计报告书
  13. rxjava面试题,android教程零基础入门
  14. 给女友的网页小惊喜,(生日,周年,表白通用) ☞谁说程序员不懂浪漫
  15. 新型发明创造大赛计算机类,2019年自主招生的七大途径你知道吗,这些内容你需要了解!...
  16. iOS经典讲解之App上架(可供销售)后App Store搜索不到的解决办法
  17. html鼠标滑过导航条展开导航条,JS+CSS实现鼠标滑过时动态翻滚的导航条效果
  18. 利用栈的基本操作,将十进制数转换为八进制数
  19. 计算机图形学期末作业,计算机图形学期末大作业3D建模.doc
  20. 从 9/10/2002 到 4/25/2003

热门文章

  1. 360旗下APP再遭苹果下架 巨头频遭“一刀切”
  2. 左小祖咒和罗永浩乐团发布全新单曲;eBay首届跨交会解析热门出口品类 | 美通企业日报...
  3. 谷雪梅 Google中国
  4. Macbook增加扩展屏待机重开后软件界面错乱问题解决方案
  5. android微信群聊功能,微信安卓内测更新,这个群聊功能等了8年
  6. 分享几个学习练习盲打的网站
  7. 外汇天眼:如何交易外汇缺口?
  8. Scratch、Python、C++,谁才是少儿编程的第一选择?
  9. 深度学习入门之python读取图片转化为向量
  10. 生产制造企业一物一码解决方案_爱码SaaS