基于pboc的电子钱包的圈存过程,供智能卡行业的开发人员参考

一. 圈存

首先终端和卡片有一个共同的密钥叫做圈存密钥:LoadKey

假设LoadKey = 11223344556677888877665544332211

在满足安全条件的情况下:

第一步:终端向卡片发送圈存初始化命令:

Apdu:  80        50   00  01   0B         01     00001000   001122334455

CLA   INS  P1   P2   LC  KeyIndex  交易金额     终端机编号

卡片返回16个字节的数据如下(不包括9000):

00000000     0000               02                00    11223344   2988AE5A

卡片余额     交易序号  密钥版本号   算法标识     随机数         MAC1

MAC1的计算过程如下:

1.计算过程密钥:SessionKey

InputData =  11223344     0000     8000  (8bytes)

随机数        交易序号    填充数据

LoadKey = 11223344556677888877665544332211

SessionKey = 3DES_Enypt(InputData, LoadKey) = 9B1D924E05595603

用LoadKey对InputData 做3DES加密

2.计算MAC1

InputData1 = 00000000     00001000     01     001122334455

卡片余额         交易金额   交易类型     终端机编号

SessionKey = 9B1D924E05595603

MAC1 = MAC(InputData1  SessionKey ) =  2988AE5A

用SessionKey对InputData1做MAC运算

第二步:终端用同样的方法计算MAC1并验证卡片返回的MAC1是否正确,从而确认卡片是否合法。如果MAC1验证没有通过,终端会终止交易。如果MAC1验证通过,进行第三步。

第三步:终端计算MAC2

InputData2=00001000     01        001122334455     20111221     214822

交易金额   交易类型      终端机编号       交易日期      交易时间

SessionKey = 9B1D924E05595603

MAC2 = MAC(InputData2  SessionKey )  =  3A845BF0

用SessionKey对InputData2做MAC运算

第四步:终端向卡片发送圈存命令:

Apdu:  80    52  00   00    0B  20111221      214822        3A845BF0

CLA   INS  P1   P2   LC   交易日期    交易时间     MAC2

第五步:卡片收到圈存命令后,用和终端一样的方式计算MAC2,并对终端发来圈存命令中的MAC2进行验证,如果MAC2验证没有通过,卡片会返回SW=9302(MAC错误),如果MAC2验证通过,则卡片余额加上交易金额作为卡片新的余额进行余额更新,交易记数器加1,并计算TAC返回给终端,TAC的计算过程如下:

卡片和终端还有一个共同的密钥TAC密钥:TACKey

假设TACKey = 00112233445566778899AABBCCDDEEFF

TACSessionKey=XOR( Left(8),Right(8)) =8888888888888888

TACKey左右8个字节做异或运算

InputData3=00001000     0000     00001000      01     001122334455   20111221    214822

新余额  交易序号旧 交易金额   交易类型  终端机编号         交易日期       交易时间

TAC = MAC(InputData3, TACSessionKey) = 6314E5F5

TAC作为圈存命令的返回数据返回给终端,圈存交易到此就结束了,TAC作为清算的时候验证交易数据真伪和完整性的重要依据,连同交易记录一同保存在终端。

基于pboc的电子钱包的圈存过程相关推荐

  1. 基于PBOC电子钱包的圈存过程详解

    基于PBOC电子钱包的圈存过程详解 基于pboc的电子钱包的圈存过程,供智能卡行业的开发人员参考 一. 圈存 首先终端和卡片有一个共同的密钥叫做圈存密钥:LoadKey   (Load即圈存的意思,u ...

  2. 基于PBOC电子钱包的圈存过程详解A

    基于PBOC电子钱包的圈存过程详解 基于pboc的电子钱包的圈存过程,供智能卡行业的开发人员参考 一. 圈存 首先终端和卡片有一个共同的密钥叫做圈存密钥:LoadKey (Load即圈存的意思,unL ...

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

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

  4. 基于PBOC的电子钱包消费交易过程

    首先终端和卡片有一个共同的密钥叫做消费密钥:PurchKey 假设PurchKey = 11223344556677888877665544332211 在满足安全条件的情况下: 第一步:终端向卡片发 ...

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

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

  6. PBOC/EMV之电子钱包与电子现金的区别

    对于普通的用户来说,电子钱包和电子现金(下面分别简称EP和EC)是几乎没有区别的, 为什么这么说呢. 因为EP和EC都是为了做小额支付而生的. 我们拿着一张IC卡去超市的POS机上消费,或是坐公交消费 ...

  7. PBOC/EMV之小额支付, 电子钱包和借贷记

    EMV标准共分四册, 分别是book1到book4, 这四册里没有对小额支付和EP/ED的相关说明, 也就是说,PBOC L2的这两个标准在EMV L2里是没有的. 所以,PBOC L2里借贷记部分实 ...

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

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

  9. 基于STM32的RC522模块读写数据块以及电子钱包充值扣款系统的设计

    目录 前言 STM32F103ZET6单片机 RC522 相关引脚连接 准备工作 Mifare卡 读卡过程 最终实现功能 代码 RC522.C代码 RC522.H main.c led.h 前言 本人 ...

最新文章

  1. eeglab中文教程系列(17)-DIPFIT对独立成分进行等价偶极子定位
  2. python基础语法第10关作业-Python基础作业一
  3. BOMHEAD display issue
  4. java io系列09之 FileDescriptor总结
  5. 不看就亏系列!这里有完整的 Hadoop 集群搭建教程,和最易懂的 Hadoop 概念!| 附代码...
  6. java五子棋棋盘_java五子棋项目(一)
  7. MacOS Mojave 安装 AI 東北きりたん 东北切蒲英 NEUTRINO 教程
  8. excel冻结行和列_Spire.Cloud.Excel 冻结或解除冻结Excel中的行和列
  9. oracle餐馆系统分析,现代饭店管理-试卷A
  10. 南阳oj 215 Sum
  11. 30分钟写一个聊天板
  12. 企业面试题|最常问的MySQL面试题集合(二)
  13. 虚幻4渲染编程(环境模拟篇)【第五卷:可交互物理植被模拟 - 上】
  14. TypeScript:Aho–Corasick算法实现敏感词过滤
  15. HDMI各版本的区别
  16. 2021-05-31 elem笔记
  17. 2016谷歌应用商店 TOP20APPS
  18. 手机能运行linux系统吗,老外继续折腾iPhone 7,成功运行Linux
  19. EMC测试项及解决方案
  20. python怎么读字意思是什么_python英文怎么读

热门文章

  1. Android图表插件
  2. Spring原理/SpringMVC原理/IOC/AOP原理
  3. Redis入门篇(安装与启动)(一)
  4. 关于战神笔记本修改.java不显示的问题
  5. java 字符串 转对象
  6. sql 分组查询没有记录的组不显示时 设置为0
  7. 企业架构双点服务器HA
  8. 微信提示发送视频不能超过25M!这2个简单方法,一键轻松发送
  9. i5-1035G7性能怎么样 i5-1035G7 相当于什么水平
  10. 神经网络模型的训练过程,人脸识别神经网络模型