CN117787301A - 一种动态加载m1和cpu卡读写规则的方法 - Google Patents
一种动态加载m1和cpu卡读写规则的方法 Download PDFInfo
- Publication number
- CN117787301A CN117787301A CN202311829880.9A CN202311829880A CN117787301A CN 117787301 A CN117787301 A CN 117787301A CN 202311829880 A CN202311829880 A CN 202311829880A CN 117787301 A CN117787301 A CN 117787301A
- Authority
- CN
- China
- Prior art keywords
- card
- data
- script file
- file
- script
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000013515 script Methods 0.000 claims abstract description 78
- 238000012545 processing Methods 0.000 claims abstract description 46
- 239000000284 extract Substances 0.000 abstract description 3
- 238000012360 testing method Methods 0.000 abstract description 2
- 238000012795 verification Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于实体卡读写技术领域,提供一种动态加载M1和CPU卡读写规则的方法,包括:建立用于处理实体卡数据的脚本文件;新增规则并上传脚本文件至OSS,关联终端;终端开机查询是否存在配置好的新增规则,若存在,则保存规则数据,直接从OSS上下载脚本文件;解析脚本文件并加载规则和脚本文件;当终端通过读卡获取到刷卡信息后,区分卡的类型,对于不同类型的实体卡,根据规则和脚本文件进行相应写卡处理。本发明通过对M1卡和CPU卡读写流程抽出容易变动的操作逻辑,将其用容易动态加载的脚本语言进行实现,终端主要负责不变的逻辑,通过加载不同的脚本文件实现对不同实体卡的读写处理,脚本语言易于编写测试,脚本语言编写的逻辑规则易于复用。
Description
技术领域
本发明属于实体卡读写技术领域,尤其涉及一种动态加载M1和CPU卡读写规则的方法。
背景技术
目前大量使用的内部能存储数据的实体卡,基本上都是M1卡和CPU卡。现有的方案一般使用适配了相应规则的刷卡终端读写M1卡和CPU卡等实体卡。即便是同一类型的实体卡,当规则变更,需要重新适配刷卡终端。而刷卡终端及终端内应用的更新难以统一管理及维护。
比如对于M1卡,校园卡、公交卡可能都是使用的这种实体卡,这种卡内部可以存储数据,M1卡分为多个扇区,每个扇区有独立的数据块和控制块。每个厂家或者每个学校的规则都不同。一方面是会使用不同的密钥,另一个方面是数据块内的数据规则完全不同。举一个例子,比如一个学校使用扇区15的第一个数据块存卡内余额,卡内该数据块读出的数据是:
0000BB CC 000000000000000000000000
其中前四个字节的0000BB CC是卡内余额。且余额就是按照0000BBCC的顺序转成十进制表示金额,单位分。
另一个学校的卡内读出:
00000000000000000000000000CC BB 00
后三字节CC BB 00表示卡内余额,且需要反序比如变成00BBCC转成十进制表示金额,单位分。
这两个数据读出的金额是一样的,但是规则完全不同。所以M1内保存的数据每个字节的含义是由发卡的厂家或者学校定义的,千差万别无法统一。因此会导致适配的困难,App的逻辑不得不按照每一家进行适配开发。
因此可知,现有技术缺点的原因本质是终端需要跟随要读写实体卡的规则进行变更。因为读写实体卡的逻辑一般都是预先编写,需要编译安装的,因此不能动态变更。
发明内容
鉴于上述问题,本发明的目的在于提供一种动态加载M1和CPU卡读写规则的方法,旨在解决现有刷卡终端难以管理维护的技术问题。
本发明采用如下技术方案:
所述动态加载M1和CPU卡读写规则的方法包括下述步骤:
步骤S1、建立用于处理实体卡数据的脚本文件,其中M1卡和CPU卡变动的操作逻辑写入所述脚本文件,固定的操作逻辑写入终端;
步骤S2、在管理后台新增规则,同时将所述脚本文件上传至操作支持系统OSS,获取脚本文件地址,填入规则信息并关联会使用该规则的终端,最后保存至数据库中;
步骤S3、终端开机后进入应用程序,查询数据库中是否存在配置好的新增规则,若存在,则保存规则数据,并根据脚本文件地址直接从OSS上下载相应脚本文件到终端;
步骤S4、终端解析脚本文件并加载规则和脚本文件;
步骤S5、当终端通过读卡获取到刷卡信息后,区分卡的类型,判断当前卡是M1卡还是CPU卡;
步骤S6、对于不同类型的实体卡,根据规则和脚本文件进行相应写卡处理。
进一步的,所述步骤S1中建立的脚本文件分为M1卡和CPU卡两部分;
M1卡都有多个扇区,每个扇区有密码A和密码B以及控制方式,将控制方式抽出形成密码生成及使用逻辑,每个扇区有独立的数据块和控制块,将数据块中数据的处理方式抽出形成数据处理逻辑,得到M1卡的脚本文件;
将CPU卡内的文件按照路径及处理访问控制抽出形成指令集,根据指令集以及文件的处理方式得到CPU卡的脚本文件。
进一步的,所述步骤S6具体过程如下:
S61、如果当前实体卡是M1卡,首先得到需要处理扇区,通过脚本文件中的密码生成及使用逻辑得到该扇区的密码和控制方式,然后读取整个扇区的数据,根据脚本文件的数据处理逻辑处理整个扇区的数据,得到扇区新的扇区数据并更新至M1卡中;
S62、如果当前实体卡是CPU卡,首先得到需要处理的指令集,逐条执行指令集中的指令,每执行一条指令得到目标文件,将目标文件按照脚本文件中文件的处理方式进行处理得到新的文件数据,并更新至CPU卡中。
本发明的有益效果是:通过对M1卡和CPU卡读写流程的抽象,抽出容易变动的操作逻辑将其用容易动态加载的脚本语言进行实现,终端主要负责不变的逻辑,通过加载不同的脚本文件实现对不同实体卡的读写处理,脚本语言易于编写测试,脚本语言编写的逻辑规则易于复用;而且终端无需改动,能够读写不同规则的实体卡,通过规则配置可以统一升级变更,无需考虑各种情况,减少管理维护的成本。
附图说明
图1是本发明实施例提供的动态加载M1和CPU卡读写规则的方法的流程图;
图2是M1卡的存储结构图;
图3是CPU卡的存储结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明主要是针对M1卡和CPU卡两种实体卡,因为两种卡逻辑不同,本发明将两种卡分别抽象处理,通过寻找到M1卡和CPU卡不同规则的相通之处,抽取出来作为动态配置,实现同一套终端加载不同配置即可读写不同规则的实体卡,极大降低管理维护的成本。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
如图1所示,本实施例提供的动态加载M1和CPU卡读写规则的方法包括下述步骤:
步骤S1、建立用于处理实体卡数据的脚本文件,其中M1卡和CPU卡变动的操作逻辑写入所述脚本文件,固定的操作逻辑写入终端。
目前主要使用的实体卡包括M1卡和CPU卡,并且因为M1卡及CPU卡差别巨大,因此需要分别处理。由于实体卡本身的性质,卡的规则是任意制定,本发明需要将实体卡规则的统一之处将其抽象出来,让固定的部分写在终端里,变动的部分写在脚本文件里。针对两种不同类型的实体卡建立脚本文件进行具体描述。
对于M1卡,其存储结构如图2所示,M1卡有多个扇区,扇区可以作为M1卡的最小单位。图示中,每个扇区4块,每个扇区有独立的数据块和控制块。在实际使用时,首先会确定要使用的扇区,每个扇区有密码A和密码B以及控制方式。所述控制方式指的是应该如何使用密码A和密码B。比如使用密码A读数据,使用密码B写数据。或者使用密码A读写数据,使用密码B更新密码A等。
因为控制方式是变动的,因此将其抽出在脚本文件中实现逻辑,另外每个扇区包括3个数据块,数据块的数据也是变动的,因此也需要将数据块内的数据处理也抽出放入脚本文件中实现。由此得到脚本文件中主要包含两个部分的逻辑,一个是密码生成及使用逻辑,一个是数据处理逻辑。本步骤将控制方式抽出形成密码生成及使用逻辑,将数据块中数据的处理方式抽出形成数据处理逻辑,得到M1卡的脚本文件。
CPU卡的结构比M1卡复杂得多。CPU卡的核心是卡片操作系统(Card OperationSystem/Chip Operation System),COS是一个比较小的非常完整严密的系统。有选择目录/文件、创建目录/文件、写入文件内容、读取文件内容等操作,外部对CPU卡发布的所有命令都需要通过COS才能对卡起作用。如图3所示,CPU卡内部的存储结构包括:
主文件MF:系统中必须存在唯一一个主文件,相当于整个系统的根,系统允许在根下直接生成各种应用文件。
专有文件DF:专有文件含有文件控制信息及可分配的存储空间,其下可以建立各种文件。专有文件下还可以建立专有文件,称为父专有文件和子专有文件,可以分别控制。实际专有文件可以理解为系统的文件夹。
元文件EF:元文件保存实际会使用的数据或文件控制信息。
对于每一个节点,CPU卡的读写都有访问控制,CPU卡的访问控制是在建立文件时定义的,读、写、更改分别是否需要验证,比如用哪个密码,是否需要口令,是否需要MAC验证等。因此对于不同的CPU卡,如果要读写其中一个文件内的数据,会变动的部分主要可以分为三个,一个是文件系统,即目标文件的路径;二是路径上每个节点的访问控制;三是文件数据的处理。因此脚本文件即对应此三部分。
另一方面,因为CPU卡内选择文件某个路径之前需进行验证,基本的逻辑流程是验证-选择节点-验证-选择节点。而每一个行为在CPU中均为指令操作,可用形如“AABBCCDD”这样的十六进制串表示。因此确定路径及处理访问控制可以用指令集表示。终端拿到指令集,依次处理即可最后拿到目标文件数据。因此本步骤中,针对CPU卡,将CPU卡内的文件按照路径及处理访问控制抽出形成指令集,根据指令集以及文件的处理方式得到CPU卡的脚本文件。
步骤S2、在管理后台新增规则,同时将所述脚本文件上传至操作支持系统OSS,获取脚本文件地址,填入规则信息并关联会使用该规则的终端,最后保存至数据库中。
当脚本文件建立完成后,在管理后台新增规则。新增规则时将脚本文件上传至OSS,并获取脚本文件地址。填入相关的规则信息,并关联会使用该规则的终端,最后保存至数据库中。
步骤S3、终端开机后进入应用程序,查询数据库中是否存在配置好的新增规则,若存在,则保存规则数据,并根据脚本文件地址直接从OSS上下载相应脚本文件到终端。
步骤S4、终端解析脚本文件并加载规则和脚本文件。
终端解析脚本文件,加载脚本文件中的相关逻辑。如果终端不能直接解析脚本文件,可以通过引入第三方引擎进行处理。
步骤S5、当终端通过读卡获取到刷卡信息后,区分卡的类型,判断当前卡是M1卡还是CPU卡。
用户在实际读写实体卡时,在终端上放置实体卡,终端通过NFC读卡,可以区分出卡的类型,判断是M1卡还是CPU卡。另外,可以先将终端本地的规则及下载的脚本文件进行比对,如果是正确的则继续执行,如果对应不上,则不做处理,即读卡不反应。
步骤S6、对于不同类型的实体卡,根据规则和脚本文件进行相应写卡处理。
S61、如果当前实体卡是M1卡,首先得到需要处理扇区,通过脚本文件中的密码生成及使用逻辑得到该扇区的密码和控制方式,然后读取整个扇区的数据,根据脚本文件的数据处理逻辑处理整个扇区的数据,得到扇区新的扇区数据并更新至M1卡中。
终端从脚本文件中拿到密码及控制方式,验证后读取出需要处理扇区的全部数据,再使用脚本文件的数据处理逻辑处理数据得到结果,也是一个扇区新的全部数据,终端将其写入M1卡中。
S62、如果当前实体卡是CPU卡,首先得到需要处理的指令集,逐条执行指令集中的指令,每执行一条指令得到目标文件,将目标文件按照脚本文件中文件的处理方式进行处理得到新的文件数据,并更新至CPU卡中。
本步骤是通过规则得到处理的指令集,通过逐条执行指令集中的指令,完成“验证-文件选择”的流程,最终读取到目标文件的数据。通过脚本文件中的文件处理方式对文件的数据进行处理,得到新的文件数据,终端继续根据指令集将数据写回卡内相应的文件中。
CPU卡内部相当于一个小型的文件系统。要读取到目标文件,需要知道路径,并且每一个节点都可能需要进行验证。由于CPU卡的任意操作都是通过指令进行处理,比如指令“00A40000023F 00”,或者“00A4000000”,指的就是选择根节点MF。指令“00A4000002ADF100”是选择名为ADF1的文件。因此通过实现一个指令集,终端按照指令一步一步执行,最后即可读取到目标文件的数据。
从上述可看出,本发明对M1卡的处理,是根据扇区选择对应脚本文件执行,对CPU卡的处理,则先根据指令集到了相应的目标文件,再根据脚本文件的处理方式执行文件操作。
综上,本发明通过对M1卡和CPU卡读写流程的抽象,抽出容易变动的逻辑将其用容易动态加载的脚本语言进行实现,读写实体卡的逻辑通过可动态执行的脚本语言进行处理,终端主要负责不变的逻辑,通过加载不同的脚本实现对不同实体卡的读写处理。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种动态加载M1和CPU卡读写规则的方法,其特征在于,所述方法包括下述步骤:
步骤S1、建立用于处理实体卡数据的脚本文件,其中M1卡和CPU卡变动的操作逻辑写入所述脚本文件,固定的操作逻辑写入终端;
步骤S2、在管理后台新增规则,同时将所述脚本文件上传至操作支持系统OSS,获取脚本文件地址,填入规则信息并关联会使用该规则的终端,最后保存至数据库中;
步骤S3、终端开机后进入应用程序,查询数据库中是否存在配置好的新增规则,若存在,则保存规则数据,并根据脚本文件地址直接从OSS上下载相应脚本文件到终端;
步骤S4、终端解析脚本文件并加载规则和脚本文件;
步骤S5、当终端通过读卡获取到刷卡信息后,区分卡的类型,判断当前卡是M1卡还是CPU卡;
步骤S6、对于不同类型的实体卡,根据规则和脚本文件进行相应写卡处理。
2.如权利要求1所述动态加载M1和CPU卡读写规则的方法,其特征在于,所述步骤S1中建立的脚本文件分为M1卡和CPU卡两部分;
M1卡都有多个扇区,每个扇区有密码A和密码B以及控制方式,将控制方式抽出形成密码生成及使用逻辑,每个扇区有独立的数据块和控制块,将数据块中数据的处理方式抽出形成数据处理逻辑,得到M1卡的脚本文件;
将CPU卡内的文件按照路径及处理访问控制抽出形成指令集,根据指令集以及文件的处理方式得到CPU卡的脚本文件。
3.如权利要求2所述动态加载M1和CPU卡读写规则的方法,其特征在于,所述步骤S6具体过程如下:
S61、如果当前实体卡是M1卡,首先得到需要处理扇区,通过脚本文件中的密码生成及使用逻辑得到该扇区的密码和控制方式,然后读取整个扇区的数据,根据脚本文件的数据处理逻辑处理整个扇区的数据,得到扇区新的扇区数据并更新至M1卡中;
S62、如果当前实体卡是CPU卡,首先得到需要处理的指令集,逐条执行指令集中的指令,每执行一条指令得到目标文件,将目标文件按照脚本文件中文件的处理方式进行处理得到新的文件数据,并更新至CPU卡中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311829880.9A CN117787301A (zh) | 2023-12-28 | 2023-12-28 | 一种动态加载m1和cpu卡读写规则的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311829880.9A CN117787301A (zh) | 2023-12-28 | 2023-12-28 | 一种动态加载m1和cpu卡读写规则的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117787301A true CN117787301A (zh) | 2024-03-29 |
Family
ID=90395889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311829880.9A Pending CN117787301A (zh) | 2023-12-28 | 2023-12-28 | 一种动态加载m1和cpu卡读写规则的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117787301A (zh) |
-
2023
- 2023-12-28 CN CN202311829880.9A patent/CN117787301A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025559B (zh) | 一种业务处理方法及装置 | |
US8392884B2 (en) | Test case automatic generation method for testing proactive GSM application on SIM cards | |
US20040098402A1 (en) | System and method for common code generation | |
CN106407111B (zh) | 终端测试装置、终端测试设备及变量维护方法 | |
CN107832059A (zh) | 一种基于Makefile的代码静态分析方法和装置 | |
CN110019111B (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN110673856B (zh) | 一种数据处理方法、装置及机器可读存储介质 | |
CN112765023A (zh) | 测试用例生成方法、装置 | |
CN112527315A (zh) | 编程语言函数自动转化方法、装置、计算机设备及介质 | |
CN106990974B (zh) | 一种app应用更新方法、装置及电子设备 | |
US8844827B2 (en) | Chip card, and method for the software-based modification of a chip card | |
CN109388406A (zh) | 转换java代码的方法及装置、存储介质、电子装置 | |
CN117787301A (zh) | 一种动态加载m1和cpu卡读写规则的方法 | |
CN109947407B (zh) | 一种数据获取方法及装置 | |
CN116560629A (zh) | 一种数据传输对象的序列化方法、装置、介质和设备 | |
CN114970474A (zh) | 一种基于数据监听的excel导入导出方法及系统 | |
CN111444161A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115167862A (zh) | 补丁方法及相关设备 | |
CN116700841B (zh) | 一种原生api调用的方法及装置 | |
EP1183596B1 (en) | Generating optimized computer data field conversion routines | |
CN117251234B (zh) | 基于补丁的函数调用方法及装置 | |
US20230084048A1 (en) | Methods and terminal for updating converted applet file, and Java Card device | |
CN108304188A (zh) | 一种数据类型转换方法及终端 | |
CN114185609A (zh) | 设备配置信息的处理方法、装置、储存介质和处理器 | |
CN114356604A (zh) | 合约调用方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |