在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

相关文章

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis