转载请注明出处

http://blog.csdn.net/pony_maggie/article/details/39780825

作者:小马

假设条件:

1 圈存1000元
2 第一货币9F79
3 卡片子密钥:4F343BCB34859BD58FFED96EE0D09BA4
4 当笔交易的应用密文(tag 9F26):36C32B02876030D1
5 当笔交易的交易计数器(tag 9F36):0005

首先明确是put data命令,

这样一个不带MAC的脚本应该可以形成:
04DA9F790A000000100000XXXXXXXX

MAC如何计算呢?

第一步,得到MAC卡片子密钥:
4F343BCB34859BD58FFED96EE0D09BA4
如果得到的是发卡行主密钥MDK-MAC,需要联合卡号以及卡片序列号分散成卡片子密钥,具体步骤参见安全规范11.1.4部分。这里不再详述。

第二步,计算过程密钥

需要ATC值, 左补0得到左半部分输入数据:
ZL = 0000000000000005

与FFFF导或并左补0,得到右半部分输入数据:
ZR = 000000000000FFFA

用工具分散得到过程密钥:
2E4D818E14CAE2348FA5E820A8A5E65E

注意到上图,我并没有按照规范分别对左右部分8字节计算,也可以合成16字节一起算,但要注意一定要选择ECB模式。

第三步,组织脚本命令的输入数据, 下列数据按顺序排列得到一个数据块D:
——CLA、INS、P1、P2 和Lc(Lc 的长度包括MAC 的长度);
——ATC(对于发卡行脚本处理,此ATC 在请求中报文中上送);
——应用密文(对于发卡行脚本处理,此应用密文通常是ARQC,或AAC,在请求报文中上送);
——命令数据域中的明文或密文数据(如果存在)。

如果最终的数据不是8的整数倍,就补80 00 ...., 得到输入数据:
04DA9F790A000536C32B02876030D1000000100000800000

用工具计算MAC

得到最终下发的脚本命令:
04DA9F790A0000001000009C612F54

发卡行圈存脚本是如何生成的相关推荐

  1. 中国银联对圈存脚本及冲正机制的建议

    转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/43647425 作者:小马 以下内容根据银行卡检测中心培训材料整理而来,备忘. 圈存 ...

  2. 0.1.2.8版ep圈存脚本

    ? "开始钱包的圈存" // 交易类型     ED圈存 = 01     EP圈存 = 02 交易类型=  $EP圈存 //圈存密钥     圈存密钥   = 70 6D 06  ...

  3. 电子钱包的圈存——java card开发第四篇

    隔了好久没更新了,前一篇创建好了文件系统,那现在就可以实现使用电子钱包了,这篇首先讲电子钱包的圈存,其实就是存款进去的意思. 首先看一个灰常重要的流程图: 首先,终端(连着主机,他们的另一边是卡片)给 ...

  4. android.nfc.tech圈存,微信etc圈存教程:1分钟学会ETC充值圈存

    微信充值etc怎么圈存?微信etc需要圈存后才能够成功充值,那么微信etc怎么圈存呢,下面小编就为大家介绍下微信充值etc圈存方法,感兴趣的朋友们就一起来了解下吧. 软件名称:微信安卓版 V8.0.3 ...

  5. 电子现金 圈存、补登

    电子现金业务 共有3个账户:传统账户,IC卡电子现金账户,补登账户. IC卡电子现金账户充值:是将传统账户的钱打入IC卡电子现金账户. 补登余额:是补登账户中余额,也就是可以存到IC卡电子现金账户中的 ...

  6. 高速公路ETC卡签之我见3-卡片圈存

     本部分介绍用户卡圈存交易(通俗说法为卡片充值)的详细交易过程.通过圈存交易,持卡人可将资金划入到卡片的电子钱包中.这种交易要求提交个人识别码(PIN). 1.  圈存交易 1.1.交易流程 1. ...

  7. 电子现金跨行圈存基础知识及常见问题

    (一)什么是电子现金 电子现金是基于金融IC卡借记和贷记应用实现的小额支付功能.为适应在脱机环境等条件下或快速支付等场合的使用管理,电子现金的交易规则参照日常使用的现金,具备不记名.不挂失.不计息的特 ...

  8. PBOC/EMV之圈存模式的变革

    转载自:http://blog.sohu.com/people/!cG9ueV9tYWdnaWVAc29odS5jb20=/143998056.html 关于圈存的概念可参见我的另一篇文章(电子现金应 ...

  9. python脚本语言采用声音作为手段_LKJ自动化测试脚本定义及生成技术研究

    LKJ 自动化测试脚本定义及生成技术研究 白鸿钧,张明凯,李冠军,杨清祥 [摘 要] 摘要:为实现对列车运行控制系统软件的自动化测试,在通用脚本语 言的基础上定义专用的脚本语言,讨论专用脚本语言的结构 ...

最新文章

  1. 面向容器技术资源调度关键技术深度对比
  2. struts2中使用json遇到的问题总结及示例程序
  3. 《预训练周刊》第7期:傅立叶图像变换器解析、阿里达摩院发布最大中文预训练语言模型PLUG
  4. python 类型之 set
  5. k8s部署nacos集群:3个pod、连接外部mysql读写分离集群
  6. ios实践之tableView顶部“弹簧”图片
  7. ReadWriteLock读写文件
  8. 35张史上最全IT架构师技术知识图谱
  9. python调用图灵api_python调用API实现智能回复机器人
  10. Google 已经实现即点即玩,国内 Android 何时跟上?
  11. 最火的开源项目及编程语言
  12. 让极路由给支持WDS的路由器无线桥接教程
  13. python实现从二维矩阵左上角到右下角的出路数寻找
  14. [NOIP2013]表达式求值
  15. [下载]Windows 10测试版的新版雅黑字体及切换工具
  16. TikTok和抖音差别大吗?
  17. 微信小程序登录方法,授权登陆及获取微信用户手机号
  18. 如何查看IP地址是否被占用
  19. 静态页面练习——京东商城登录页面
  20. Kafka源码-发送器Sender类型的的sendProducerData 模版方法

热门文章

  1. Linux statfs用法,linux的statfs命令
  2. 读了《黑客与画家》(2)
  3. html全局变量标签,javascript怎么定义全局变量?
  4. Java中链表的使用
  5. Sorry, this application cannot run under a Virtual Machine
  6. 甘肃省计算机中职学校有哪些大学,甘肃省中职生可以报考的大学有哪些?
  7. 2020年中国二手消费电子行业现状分析,二手手机是用户交易活跃度最高的品类之一「图」
  8. 378条工商变更信息背后:风口上的区块链企业如何变动?
  9. HBase Master启动报错java.io.IOException: error or interrupted while splitting logs
  10. 面试前端岗位接连碰壁,企业到底需要哪种前端工程师?