在FMCOS CPU卡上建立简单的测试PBOC支付环境

2024-04-12 00:36

本文主要是介绍在FMCOS CPU卡上建立简单的测试PBOC支付环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文目的在于快速搭建一个简易的支付环境,方便进行电子钱包的圈存、消费测试。因此省略了许多数据文件及安全机制。

请勿将这个测试支付环境应用在生产系统中,否则可能带来极大的安全隐患。

建立简易的测试PBOC支付环境

在根目录(3F00)下建立应用目录3F01

80 E0 3F 01 0D 38 08 00 F0 F0 95 FF FF 11 22 33 44 55

选择应用目录3F01

00 A4 00 00 02 3F 01 00  

建立密钥文件

80 E0 00 00 07 3F 01 8F 95 F0 FF FF 

增加外部认证密钥

80 D4 01 00 0D 39 F0 F0 AA FF 11 22 33 44 55 66 77 88 

增加消费密钥

80 D4 01 00 15 3E F0 F0 00 01 3E 3E 3E 3E 3E 3E 3E 3E 11 22 33 44 55 66 77 88 

增加圈存密钥

80 D4 01 00 15 3F F0 F0 00 01 3F 3F 3F 3F 3F 3F 3F 3F 11 22 33 44 55 66 77 88 

增加DTK/TAC密钥

80 D4 01 00 15 34 F0 F0 00 01 34 34 34 34 34 34 34 34 11 22 33 44 55 66 77 88 

增加口令密钥(PIN)

80 D4 01 00 07 3A F0 EF AA FF 12 34 

建立交易记录文件0018

80 E0 00 18 07 2E 0A 17 F0 EF FF FF 

建立电子钱包文件0002

80 E0 00 02 07 2F 02 08 F0 00 FF 18 

简易的测试支付环境就此建立完毕。

对电子钱包进行圈存操作

读余额

Rdr: 80 5C 00 02 04
Tag: 00 00 00 00 [90 00] 命令执行成功 

可见目前余额为0。

验证口令(PIN)

Rdr: 00 20 00 00 02 12 34
Tag: [90 00] 命令执行成功 

对于电子钱包,圈存操作强制验证PIN。 读余额、消费操作可以不验证PIN。

圈存初始化

Rdr: 80 50 00 02 0B 【00】 【00 00 00 10】 【66 66 66 66 66 66】 10
Tag: 【00 00 00 00】 【00 00】 【00】 【01】 【4E 06 65 48】 【0D 39 AD BB】 [90 00] 命令执行成功

读卡器发送的有效数据依次为:圈存密钥标识、交易金额、终端机编号

卡片应答的有效数据依次为:旧余额、联机交易序号、密钥版本、算法标识、随机数、MAC1

过程密钥的计算

将随机数(4E 06 65 48)、联机交易序号(00 00)和填充字节(80 00)组成的完整数据4E 06 65 48 00 00 80 00,使用圈存密钥进行加密,得到“过程密钥”:3B 75 C7 9C FA 8C 23 27

MAC1的计算

将旧余额(00 00 00 00)、交易金额(00 00 00 10)、交易类型(02)和终端机编号(66 66 66 66 66 66)组成的完整数据00 00 00 00 00 00 00 10 02 66 66 66 66 66 66,使用“过程密钥”计算MAC,得到MAC1:0D 39 AD BB。

注:交易类型02表示电子钱包;01则表示电子存折。

圈存

Rdr: 80 52 00 00 0B 【20 24 04 11】 【21 21 21】 【09 7E 98 FE】 04
Tag: 【A8 02 86 3E】 [90 00] 命令执行成功

读卡器发送的有效数据依次为:交易日期、交易时间、MAC2

卡片应答的有效数据为:交易验证码(TAC)

MAC2的计算

将交易金额(00 00 00 10)、交易类型(02)、终端机编号(66 66 66 66 66 66)、交易日期(20 24 04 11)和交易时间(21 21 21)组成的完整数据,00 00 00 10 02 66 66 66 66 66 66 20 24 04 11 21 21 21,使用“过程密钥”计算MAC,得到MAC2:09 7E 98 FE

交易验证码(TAC)的计算

将新余额(旧余额00 00 00 00 + 交易金额00 00 00 10 = 00 00 00 10)、联机交易序号(00 00)、交易金额(00 00 00 10)、交易类型(02)、终端机编号(66 66 66 66 66 66)、交易日期(20 24 04 11)和交易时间(21 21 21)组成完整数据:00 00 00 10 00 00 00 00 00 10 02 66 66 66 66 66 66 20 24 04 11 21 21 21。

将DTK/TAC密钥的左右(高低)8字节进行异或,即34 34 34 34 34 34 34 34与11 22 33 44 55 66 77 88进行异或,得到计算TAC使用的密钥:25160770615243BC。用该密钥对前面得到的完整数据(00 00 00 10 00 00 00 00 00 10 02 66 66 66 66 66 66 20 24 04 11 21 21 21)计算MAC,得到TAC:A8 02 86 3E

再次读余额

Rdr: 80 5C 00 02 04
Tag: 00 00 00 10 [90 00] 命令执行成功

读交易记录

Rdr: 00 B2 01 C4 00
Tag: 00 01 00 00 00 00 00 00 10 02 66 66 66 66 66 66 20 24 04 11 21 21 21 [90 00] 命令执行成功 

这篇关于在FMCOS CPU卡上建立简单的测试PBOC支付环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/895616

相关文章

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步