CN104090738A - 一种序列号转换方法和装置 - Google Patents
一种序列号转换方法和装置 Download PDFInfo
- Publication number
- CN104090738A CN104090738A CN201410252082.9A CN201410252082A CN104090738A CN 104090738 A CN104090738 A CN 104090738A CN 201410252082 A CN201410252082 A CN 201410252082A CN 104090738 A CN104090738 A CN 104090738A
- Authority
- CN
- China
- Prior art keywords
- sequence number
- bit sequence
- bytes
- round values
- length
- 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
Abstract
本发明提供了序列号转换方法,包括:根据35位序列号的后10位的连续非零有效位数确定转码方式,若连续非零有效位数为0-3,则将35位序列号分拆为3部分转码为19位序列号,若连续非零有效位数为4-7,则将35位序列号分拆为4部分转码为19位序列号,以及包括:根据19位序列号最后4位解码得到的3字节整数确定转码方式,若3字节整数的高2bit为第一标识码,则将19位序列号分拆为3部分转码为35位序列号;若所述3字节整数的高2bit为第二标识码,则将19位序列号分拆为4部分转码为35位序列号。本发明还提供了相应的装置。实施上述方法和装置,可实现序列号的高效、唯一、可逆转换。
Description
技术领域
本发明涉及计算机数据处理领域,具体而言,涉及将一种计算机系统的序列号与另一种计算机系统的序列号进行转换的方法和装置。
背景技术
在涉及到两个不同的系统时,需要将两种系统中标记交易数据处理事件的序列号进行转换。在一些特别的情形下,例如在同一机构的新老两种系统中,要求相应的交易数据处理在新老系统中平稳过渡,需要新老系统中两个系统全局唯一的两种业务跟踪序列号能够唯一对应的互换。虽然现有技术中可采用MD5算法将任意长度的字符串变换成一个128bit的大整数来进行序列号转换,但它属于不可逆的字符串变换算法,这使得通过转换后的序列号反向查询转换前的序列号变的不可能,而且MD5算法较为复杂,在转换效率和实时性方面也无法满足要求。因而,需要对两种系统中所要求的构造不同的序列号进行高效转换的解决方案。
发明内容
本发明提供了一种序列号互换方法和装置,能够将第一系统的19位序列号快捷、高效地转换为更新后的第二系统的具有特定要求的35位序列号,而且可以利用对应的转换算法将转换后的35位序列号反向转换为19位序列号,实时、高效地实现了两种系统对应的构造不同的序列号的互换,使得更新后的第二系统可通过反向的序列号转换使用第一系统的各项业务处理功能。
根据本发明实施方式的第一方面,提供了一种序列号转换方法,用于第一系统的19位序列号与更新后的第二系统的35位序列号的转换,其中19位序列号为可见字符串,35位序列号包括前25位流水号和后10位纯数字的子交易序列号,包括:
根据所述35位序列号的后10位的连续非零有效位数确定转码方式,
若所述连续非零有效位数为0-3,则将所述35位序列号分拆为3部分转码为19位序列号,
若所述连续非零有效位数为4-7,则将所述35位序列号分拆为4部分转码为19位序列号。
根据本发明实施方式的第二方面,提供了一种序列号转换方法,用于第一系统的19位序列号与更新后的第二系统的35位序列号的转换,其中19位序列号为可见字符串,35位序列号包括前25位流水号和后10位纯数字的子交易序列号,该方法包括:
根据所述19位序列号最后4位解码得到的3字节整数确定转码方式,
若所述3字节整数的高2bit为第一标识码,则将所述19位序列号分拆为3部分转码为35位序列号;
若所述3字节整数的高2bit为第二标识码,则将所述19位序列号分拆为4部分转码为35位序列号。
根据本发明实施方式的第三方面,提供了一种序列号转换装置,用于第一系统的19位序列号与更新后的第二系统的35位序列号的转换,其中19位序列号为可见字符串,35位序列号包括前25位流水号和后10位纯数字的子交易序列号,包括:
第一判断单元,用于根据所述35位序列号的后10位的连续非零有效位数确定转码方式,若所述连续非零有效位数为0-3,则调用第一处理单元,若所述连续非零有效位数为4-7,则调用第二处理单元;
第一处理单元,用于将所述35位序列号分拆为3部分转码为19位序列号;第二处理单元,用于将所述35位序列号分拆为4部分转码为19位序列号。
根据本发明实施方式的第四方面,提供了一种序列号转换装置,用于第一
系统的19位序列号与更新后的第二系统的35位序列号的转换,其中19位序
列号为可见字符串,35位序列号包括前25位流水号和后10位纯数字的子交
易序列号,包括:
第二判断单元,用于根据所述19位序列号最后4位解码得到的3字节整数确定转码方式,若所述3字节整数的高2bit为第一标识码,则调用第三处理单元,若所述3字节整数的高2bit为第二标识码,则调用第四处理单元;
第三处理单元,用于将所述19位序列号分拆为3部分转码为35位序列号;
第四处理单元,用于将所述19位序列号分拆为4部分转码为35位序列号。
实施本发明提供的序列号转换方法和装置,根据序列号的不同形式设计对应不同的转码方式,显著提高了序列号转换的转换效率,而且35位序列号与19位序列号的转换可逆,保证了序列号转换前后的唯一性。
附图说明
图1图示了根据本发明一种实施方式的序列号转换方法的第一示意图;
图2图示了根据本发明一种实施方式的序列号转换方法的第二示意图。
具体实施方式
为使本发明的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
参照图1,图1图示了根据本发明一种实施方式的序列号转换方法的示意图。本发明提供了一种序列号转换方法用于第一系统的19位序列号与更新后的第二系统的35位序列号的转换,其中19位序列号为可见字符串,35位序列号包括前25位流水号和后10位纯数字的子交易序列号,该方法具体可包括:
根据所述35位序列号的后10位的连续非零有效位数确定转码方式,
若所述连续非零有效位数为0-3,则将所述35位序列号分拆为3部分转码为19位序列号,
若所述连续非零有效位数为4-7,则将所述35位序列号分拆为4部分转码为19位序列号。
本发明实施方式中,第一系统和第二系统可以是同一机构使用的老系统和新系统,其在功能在存在一定的联系,但也存在的一些不同,第二系统可以是第一系统的更新形式。第一系统中的19位序列号可以是仅具有标识意义的全局事件跟踪号,作为索引对事件进行追踪,可以由事件触发点生成(事件触发或规则触发),全局唯一,全流程共用,一直持续到事件结束。19位的全局事件跟踪号为可见字符串格式,包括52个可见英文字母(26个小写英文字母及对应的26个大写英文字母)、数字0到9以及“+”、“-”。
本发明实施方式的35位序列号包括前25位流水号和后10位纯数字的子交易序列号,下面具体说明35位序列号的构成。前25位序列号,由每台机器各自独立生成,具有全局唯一性。其可以采用4段25位的编码方式,具体可以如表1。
表1
其中,25位流水号的第一段长度为6位的安全节点号,一般是表示产生该流水号的安全实体的相应编号。安全节点号可以直接引用安全架构所定义的安全节点编码。其中,安全实体具体为对应的交易系统(例如,银行机构的某一交易系统),安全架构所定义的安全节点是安全架构为各个交易系统所定义的安全相关的编号。
25位流水号的第二段为长度为3位同一安全节点内的机器分类编号。所谓的机器分类编号,由取得安全节点号的责任方来编排并保证其全局唯一性(其中,该机器分类编号优先使用数字编排,满999之后使用英文大写字母)。其中责任方为该交易系统,在该交易系统内所有机器的编号都是唯一的。
25位流水号的第三段为长度为10位的时间,该时间是一个整数,表示从世界协调时(Coordinated Universal Time,UTC)时间1970年1月1日00:00:00开始到当前时间的秒数。为了计算得出这个整数,可以先计算从1970年元旦零点至当前日期的总天数,再进行相关换算和加上当天已走过的总秒数即可。按计算,这个10位的整数的最大值“9999999999”对应的时刻是2286年11月21日01:46:39(北京时间GMT+8)。
25位流水号的第四段为长度为6位的序列号。该序列号可以由机器自身的序列号生成器产生,从0开始逐个递增,每取出一个序列号后即向上加1,直至到达999999之后循环从0重复开始。流水号编码的第四段序列号,要求:单向往前递增、到达最大值后归零。服务重启、系统重启、断电后重启等无论哪种情况下,都必须保证序列号单向往前递增。该序列号应该与时间是不相关的,禁止到达某一时间点即对序列号清零,因为机器的系统时间会被手动调整或自动同步而可能出现相同的时间。
35位序列号除了包括25流水号之外,还包括10位子交易序列号,其中子交易序列号为纯数字,在本发明的实施方式中,该10位子交易序列号的前7位为有效长度,如果连续非零的长度超过7位,则属于错误序列号。设置这样的子交易序列号的栏位目的在于供服务组合点区分所组合的服务,也就是区分组合交易包含的不同子交易。组合交易是指包含其他子交易的交易。非组合交易时,该10位的子交易序列号保持全0。在中间系统节点有组合的情况下,由组合点(对应交易系统)产生。规则如下:该栏位存放服务组合点的子服务序列号。发起节点该栏位填写全0;交易过程节点如果没有组合,则保持全0;如果有组合,则从左到右,找到第一个0的位置,然后按其组合顺序,在该位填写子交易序列号1、2、3......,最多为9。例如,P4收到1个请求报文,该栏位为全0,P4对该服务要组合2个子交易,则第一个交易该栏位填“1000000000”,对第二个交易填“2000000000”。
本发明的实施方式中可以根据35位序列号的后10位子交易序列号的连续非零有效位数确定转码方式,若后10位子交易序列号的连续非零有效位数为0-3时,则将35位序列号分拆为3部分转码为19位序列号(本文可称为方式1)。若后10位子交易序列号的连续非零有效位数为4-7时,则将35位序列号分拆为4部分转码为19位序列号(本文可称为方式2)。例如,在一种实施方式中,35位全局事件跟踪号的后10位为1111100000,则其对应的35位全局事件跟踪号可分为4部分转码为19位序列号。由于目前大部分交易采用的子交易序列号有效位数不超过3位,因而在子交易序列号的有效位数不超过3的情况下,采用将35位跟踪号分为3部分的转码方式1,与将35位序列号分为4部分的转码方式2相比,转换的效率更高一些。针对序列号的子交易序列号的不同形式采用不同的转码方式,特别是在交易组合点分布较复杂(例如,子交易序列号的有效位数既有大量的不超过3的情况,也有大量的超过3的情况)时,显著提高了序列号转码的处理效率。
在将35位序列号分拆为3部分进行转码的方式中,各部分取值范围、值空间以及base64编码后长度如下表2。下文中以将“ZZZZZZZZZ13575602681234561110000000”转换为19位序列号为例进行介绍。
表2
数字/字母/取值范围 | 位数 | 值空间 | 二进制表示位数 | 二进制字节数 | base64编码后长度 |
36 | 9 | 1.0156E+14 | 47 | 6 | 8 |
10 | 9 | 1000000000 | 30 | 4 | 6 |
10 | 7 | 10000000 | 24 | 3 | 4 |
在表2中,35位序列号前9位的值空间最大为36的9次方,二进制占用47位,占用6个字节,base64编码6字节内存块后输出为8字节,示例序列号中该部分为“ZZZZZZZZZ”。以示例序列号为例,其中35位序列号从第10位开始的第10-21位连续12位字符串“135756026812”的前10位“1357560268”表示当前时间的秒数,去除年月后的秒数最大值为2678400,占用7位,如“1357560268”在去除年月后得到的数值为“0590668”且不超过7位(不足7位左侧补0)。表2的第二行位数列中的9位为字符串“135756026812”去除年月后得到的结果“059066812”的长度;表2中第三行位数列中的7位为第22-28位的“3456111”的长度,35位序列号的最后7位(即第29-35位)“0000000”不进行处理。另外,表2中的“数字/字母/取值范围”列中,35位全局事件跟踪号的第1-9位取值范围为36,其中包括26英文字母和10个阿拉伯数字(即0、1、2、3、4、5、6、7、8、9);第10-21位表示时间的数字去除年月后的9位的取值范围为10,即10个阿拉伯数字;第22-28位的7位取值范围为10,即10个阿拉伯数字。在经过base64编码得到8字节+6字节+4字节的18位全局事件跟踪号后,在第12位后加入业务标识字符,最终得到19位输出全局事件跟踪号。其中在12位添加的业务标识字符可根据业务需要增加,具有特定的含义。
需要说明的是,本发明实施方式中的35位序列号必须进行分拆处理,如果不对35位全局事件跟踪号进行分段拆分,则其在内存中对应的值空间会很大且经过对应编码转换后得到的字符串长度会超过19位;必须将其分段拆分,使得拼接后对应值空间不越界。
在将35位序列号分拆为4部分进行转码处理的方式中,各部分取值范围、值空间以及base64编码后长度可以如表3。下文中以将“408002ZZZ13575602681234561111111000”转换为19位序列号为例进行介绍。
表3
在表3中,35位序列号的前6位(即第1-6位)安全节点号“408002”通过采用枚举的方法转换为对应的整数值,由于拆分得到的4个字符串的后3个字符串(表3中的第二、第三、第四行所对应字符串)base64编码后得到的字符串长度为3+8+4=15,则第一行对应6位安全节点号base64编码后得到的字符串长度不能超过3个字节,由此则限定了6位安全节点号对应的整数值空间在内存中不超过2字节,取值范围为0—65535(2的16次方,该处的位数16指的是16bit);表3中的第二行对应字符串为同一节点内机器分类编号第7-9位“ZZZ”;表3中的第三行对应16位(即第10-25位)的字符串“1357560268123456”,具体处理方法与表2中对时间的处理一致,此处去除年月后为13个字符“0590668123456”,其值空间最大为2.6784E+12,二进制字节数为6,base64编码后占用8个字节;表3中第四行对应第26-32字符串为“1111111”,35位序列号的最后三位第33-35位“000”不进行处理。在经过base64编码得到3字节+3字节+8字节+4字节的18位全局事件跟踪号后,在第12位后加入业务标识字符后,最终得到19位输出全局事件跟踪号。
由于在将35位全局事件跟踪号转换为19位全局事件跟踪号的过程中,使用了方式1和方式2两种转码方式,在对应的将19位全局事件跟踪号转换为35位全局事件跟踪号的过程中需要设置相应两个标识码,标识出是使用方式1对应的方式11,还是使用方式2对应的方式22。具体可以包括如下步骤:得到35位序列号拆分后的第三个字符串(7位有效长度,对应表2第三行)对应的3字节整数后,将该3字节整数高2bit转移到表2第二行中第10-21位的12位字符串对应的二进制字节数为4字节整数的高2bit,然后将该3字节整数高2bit设置为所述第一标识码(例如,可以设置为00);以及得到35位序列号拆分后的第四个字符串(有效长度为7位,二进制字节数为3字节,对应表3第四行)的3字节整数后,将该3字节整数高2bit转移到表3所述第三行原35位序列号第10-25位共16位字符串得到的二进制字节数为6字节整数的高2bit,然后将该3字节整数高2bit设置为第二标识码(例如,可以设置为01)。
在本发明的实施方式中,将19位全局事件跟踪号转换为35位全局事件跟踪号的具体步骤可以如图2所示。具体而言,包括:根据19位全局事件跟踪号最后4位解码得到的3字节整数确定转码方式,若所述3字节整数的高2bit为第一标识码,则将所述19位全局事件跟踪号分拆为3部分转码为35位全局事件跟踪号(本文中可称为方式11);若所述3字节整数的高2bit为第二标识码,则将所述19位全局事件跟踪号分拆为4部分转码为35位全局事件跟踪号(本文中可称为方式22)。
具体而言,将19位全局事件跟踪号转换为35位全局事件跟踪号的步骤根据上述的方式1和方式2不同对应地分为两种:方式11和方式22,方式11的转码方式具体可包括:将19位全局事件跟踪号的第12位的业务标识字符去除之后,将剩下的18位字符串依次分为表2中对应的8字节、6字节、4字节的3部分,使用base64算法对所述3部分进行解码得到对应的二进制长度为6字节的第一整数值、二进制长度为4字节的第二整数值和二进制长度为3字节的第三整数值,在二进制长度为4字节的第二整数值中去除第一标识码,并根据所述第二整数值得到恢复年月后的第二整数值,根据第一整数值、恢复年月后的第二整数值和第三整数值得到35位序列号的前28位序列号,在该28位序列号之后添加7个零,得到35位序列号。方式22的转码方式具体可包括:将19位全局事件跟踪号的第12位的业务标识字符去除之后,将剩下的18位字符串依次分为表3中所示的3字节、3字节、8字节、4字节的4部分,使用base64算法对所述4部分进行解码得到对应的二进制长度为2字节的第一整数值、二进制长度为2字节的第二整数值、二进制长度为6字节的第三整数值和二进制长度为3字节的第四整数值,在二进制长度为6字节的第三整数值中去除第二标识码,并根据第三整数值得到恢复年月后的第三整数值,根据第一整数值、第二整数值、恢复年月后的第三整数值和第四整数值得到35位序列号的前32位,在该32位序列号之后添加3个零,得到35位序列号。
在本发明实施方式,根据标识转码方式的标识码的不同,去除标识码可分为去除第一标识码和去除第二标识码。其中,去除第一标识码具体可以包括:根据19位全局事件跟踪号的最后4位得到对应3字节整数高2bit,如果高2bit为第一标识码(例如,可以为标识码00),则将二进制长度为4字节的第二整数值的高2bit转移到将19位全局事件跟踪号最后4位解码得到的3字节整数的高2bit的第一标识码位置。对于第二标识码(例如,可以为标识码01),其去除步骤具体可包括:将二进制长度为6字节的第三整数值的高2bit转移到将所述19位序列号最后4位解码得到的3字节整数的高2bit的第二标识码位置。
以上结合具体实施方式描述了本发明的序列号转换方法,下面将结合具体实施方式描述用于实现上述序列号转换方法的序列号转换装置。
本发明的一种序列号转换装置,该装置可用于第一系统的19位序列号与更新后的第二系统的35位序列号的转换,其中19位序列号为可见字符串,35位序列号包括前25位流水号和后10位纯数字的子交易序列号,具体可包括:
第一判断单元,用于根据所述35位序列号的后10位的连续非零有效位数确定转码方式,若所述连续非零有效位数为0-3,则调用第一处理单元,若所述连续非零有效位数为4-7,则调用第二处理单元;
第一处理单元,用于将所述35位序列号分拆为3部分转码为19位序列号;
第二处理单元,用于将所述35位序列号分拆为4部分转码为19位序列号。
本发明实施方式中,第一系统和第二系统可以是同一机构使用的老系统和新系统。其中,第一系统中的19位序列号可以是仅具有标识意义的全局事件跟踪号,作为索引对事件进行追踪,可以由事件触发点生成(事件触发或规则触发),全局唯一,全流程共用,一直持续到事件结束。19位的全局事件跟踪号为可见字符串格式,包括52个可见英文字母(26个小写英文字母及对应的26个大写英文字母)、数字0到9以及“+”、“-”。
本发明实施方式的35位序列号包括前25位流水号和后10位纯数字的子交易序列号,下面具体说明35位序列号的构成。前25位序列号,由每台机器各自独立生成,具有全局唯一性。其可以采用4段25位的编码方式,具体可以如表1。对表1中相关编号的说明,具体可参见方法部分的描述。其中,35位序列号的前25位包括6位节点编码、3位同一节点内的机器编码、10位世界协调时UTC编码和6位序列数,6位序列数为单向递增,并且在到达999999后归零。
本发明实施方式中的第一判断单元可据35位序列号的后10位子交易序列号的连续非零有效位数确定是采用第一处理单元进行转码(本文中将第一处理单元的转码方式为方式1),还是采用第二处理单元进行转码(本文中将第二处理单元的转码方式为方式2)。由于目前大部分交易采用的子交易序列号有效位数不超过3位,因而在子交易序列号的有效位数不超过3的情况下,采用第一处理单元将35位跟踪号分为3部分的转码方式1,与采用第二处理单元将35位序列号分为4部分的转码方式2相比,转换的效率更高一些。针对序列号的子交易序列号的不同形式采用不同的转码方式,特别是在交易组合点分布较复杂(例如,子交易序列号的有效位数既有大量的不超过3的情况,也有大量的超过3的情况)时,显著提高了序列号转码的处理效率。
第一处理单元在将35位序列号分拆为3部分进行转码的方式中,具体是将所述35位序列号分拆为取值范围为36、10、10且二进制长度分别为6字节、4字节、3字节且对应base64编码后长度分别为8字节、6字节、4字节的3部分,并且在上述(8+6+4)个字节的第12个字节添加业务标识字符后,得到19位序列号。其中,分开的3部分取值范围、值空间以及base64编码后长度如下表2。对表2中相关数据的说明,具体可参照方法部分对表2的描述。
第二处理单元在将35位序列号分拆为4部分进行转码处理的方式中,具体是将所述35位序列号分拆为取值范围为2、36、10、10且二进制长度分别为2字节、2字节、6字节和3字节且对应base64编码后长度分别为3字节、3字节、8字节、4字节的4部分,并且在上述(3+3+8+4)个字节的第12个字节添加业务标识字符后,得到19位序列号。拆分的4部分取值范围、值空间以及base64编码后长度可以如表3。对表2中相关数据的说明,具体可参照方法部分对表2的描述。
在本发明的一些实施方式中,序列号转换装置还可以包括第一添加单元,用于实现下述处理:得到所述35位序列号的二进制字节为3字节的整数后,将该3字节整数高2bit转移到所述35位序列号第10-21位字符串得到的二进制字节数为4字节整数的高2bit,然后将该3字节整数高2bit设置为所述第一标识码(例如,可以是00)。在另一些实施方式中,还可以包括第二添加单元,用于实现下述处理:得到所述35位序列号的二进制字节数为3字节的整数后,将该3字节整数高2bit转移到所述35位序列号第10-25位字符串得到的二进制字节数为6字节整数的高2bit,然后将该3字节整数高2bit设置为所述第二标识码(例如,可以是01)。
本发明实施方式提供的另一种序列号转换装置,用于第一系统的19位序列号与更新后的第二系统的35位序列号的转换,其中19位序列号为可见字符串,35位序列号包括前25位流水号和后10位纯数字的子交易序列号,具体可以包括:
第二判断单元,用于根据所述19位序列号最后4位解码得到的3字节整数确定转码方式,若所述3字节整数的高2bit为第一标识码,则调用第三处理单元,若所述3字节整数的高2bit为第二标识码,则调用第四处理单元;
第三处理单元,用于将所述19位序列号分拆为3部分转码为35位序列号;
第四处理单元,用于将所述19位序列号分拆为4部分转码为35位序列号。
本发明的实施方式中,第二判断单元可根据所述19位序列号最后4位解码得到的3字节整数确定转码方式,若所述3字节整数的高2bit为第一标识码,则调用第三处理单元,若所述3字节整数的高2bit为第二标识码,则调用第四处理单元。第三处理单元的转码方式是与第一处理单元采用的转码方式1对应的转码方式11,第四处理单元的转码方式是与第二处理单元采用的转码方式2对应的转码方式22。
第三处理单元可用于实现下述处理:将所述19位序列号的第12位的业务标识字符去除之后,将剩下的18位字符串依次分为8字节、6字节、4字节的3部分,使用base64算法对所述3部分进行解码得到对应的二进制长度为6字节的第一整数值、二进制长度为4字节的第二整数值和二进制长度为3字节的第三整数值,在二进制长度为4字节的第二整数值中去除第一标识码,并根据所述第二整数值得到恢复年月后的第二整数值,根据所述第一整数值、恢复年月后的第二整数值和所述第三整数值得到35位序列号的前28位序列号,在该28位序列号之后添加7个零,得到35位序列号。第三处理单元的转码处理与第一处理单元的转码处理是相逆的,在此不再赘述。其中,在二进制长度为4字节的字符串中去除第一标识码包括:将二进制长度为4字节的第二整数值的高2bit转移到将所述19位序列号最后4位解码得到的3字节整数的高2bit的第一标识码位置。
第四处理单元可用于实现下述处理:将所述19位序列号的第12位的业务标识字符去除之后,将剩下的18位字符串依次分为3字节、3字节、8字节、4字节的4部分,使用base64算法对所述4部分进行解码得到对应的二进制长度为2字节的第一整数值、二进制长度为2字节的第二整数值、二进制长度为6字节的第三整数值和二进制长度为3字节的第四整数值,在二进制长度为6字节的第三整数值中去除所述第二标识码,并根据所述第三整数值得到恢复年月后的第三整数值,根据所述第一整数值、所述第二整数值、恢复年月后的第三整数值和所述第四整数值得到35位序列号的前32位,在该32位序列号之后添加3个零,得到35位序列号。其中,在二进制长度为6字节的字符串中去除所述第二标识码包括:将二进制长度为6字节的第三整数值的高2bit转移到将所述19位序列号最后4位解码得到的3字节整数的高2bit的第二标识码位置。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所揭露的仅为本发明的一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (24)
1.一种序列号转换方法,其特征在于,用于第一系统的19位序列号与更新后的第二系统的35位序列号的转换,其中19位序列号为可见字符串,35位序列号包括前25位流水号和后10位纯数字的子交易序列号,所述方法包括:
根据所述35位序列号的后10位的连续非零有效位数确定转码方式,
若所述连续非零有效位数为0-3,则将所述35位序列号分拆为3部分转码为19位序列号,
若所述连续非零有效位数为4-7,则将所述35位序列号分拆为4部分转码为19位序列号。
2.一种序列号转换方法,其特征在于,用于第一系统的19位序列号与更新后的第二系统的35位序列号的转换,其中19位序列号为可见字符串,35位序列号包括前25位流水号和后10位纯数字的子交易序列号,所述方法包括:
根据所述19位序列号最后4位解码得到的3字节整数确定转码方式,
若所述3字节整数的高2bit为第一标识码,则将所述19位序列号分拆为3部分转码为35位序列号;
若所述3字节整数的高2bit为第二标识码,则将所述19位序列号分拆为4部分转码为35位序列号。
3.根据权利要求1或2所述的方法,其特征在于,所述35位序列号的前25位包括6位节点编码、3位同一节点内的机器编码、10位世界协调时UTC编码和6位序列数。
4.根据权利要求1或2所述的方法,其特征在于,所述35位序列号中的6位序列数为单向递增,并且在到达999999后归零。
5.根据权利要求1所述的方法,其特征在于,所述将所述35位序列号分拆为3部分转码为19位序列号包括:将所述35位序列号分拆为取值范围为36、10、10且二进制长度分别为6字节、4字节、3字节且对应base64编码后长度分别为8字节、6字节、4字节的3部分,并且在上述(8+6+4)个字节的第12个字节添加业务标识字符后,得到19位序列号。
6.根据权利要求1所述的方法,其特征在于,所述将所述35位序列号分拆为4部分转码为19位序列号包括:将所述35位序列号分拆为取值范围为2、36、10、10且二进制长度分别为2字节、2字节、6字节和3字节且对应base64编码后长度分别为3字节、3字节、8字节、4字节的4部分,并且在上述(3+3+8+4)个字节的第12个字节添加业务标识字符后,得到19位序列号。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:得到所述35位序列号的二进制字节为3字节的整数后,将该3字节整数高2bit转移到所述35位序列号第10-21位字符串得到的二进制字节数为4字节整数的高2bit,然后将该3字节整数高2bit设置为所述第一标识码。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:得到所述35位序列号的二进制字节数为3字节的整数后,将该3字节整数高2bit转移到所述35位序列号第10-25位字符串得到的二进制字节数为6字节整数的高2bit,然后将该3字节整数高2bit设置为所述第二标识码。
9.根据权利要求2所述的方法,其特征在于,所述将所述19位序列号分拆为3部分转码为35位序列号包括:将所述19位序列号的第12位的业务标识字符去除之后,将剩下的18位字符串依次分为8字节、6字节、4字节的3部分,使用base64算法对所述3部分进行解码得到对应的二进制长度为6字节的第一整数值、二进制长度为4字节的第二整数值和二进制长度为3字节的第三整数值,在二进制长度为4字节的第二整数值中去除第一标识码,并根据所述第二整数值得到恢复年月后的第二整数值,根据所述第一整数值、恢复年月后的第二整数值和所述第三整数值得到35位序列号的前28位序列号,在该28位序列号之后添加7个零,得到35位序列号。
10.根据权利要求2所述的方法,其特征在于,将所述19位序列号分拆为4部分转码为35位序列号包括:将所述19位序列号的第12位的业务标识字符去除之后,将剩下的18位字符串依次分为3字节、3字节、8字节、4字节的4部分,使用base64算法对所述4部分进行解码得到对应的二进制长度为2字节的第一整数值、二进制长度为2字节的第二整数值、二进制长度为6字节的第三整数值和二进制长度为3字节的第四整数值,在二进制长度为6字节的第三整数值中去除所述第二标识码,并根据所述第三整数值得到恢复年月后的第三整数值,根据所述第一整数值、所述第二整数值、恢复年月后的第三整数值和所述第四整数值得到35位序列号的前32位,在该32位序列号之后添加3个零,得到35位序列号。
11.根据权利要求9所述的方法,其特征在于,在二进制长度为4字节的字符串中去除第一标识码包括:将二进制长度为4字节的第二整数值的高2bit转移到将所述19位序列号最后4位解码得到的3字节整数的高2bit的第一标识码位置。
12.根据权利要求10所述的方法,其特征在于,在二进制长度为6字节的字符串中去除所述第二标识码包括:将二进制长度为6字节的第三整数值的高2bit转移到将所述19位序列号最后4位解码得到的3字节整数的高2bit的第二标识码位置。
13.一种序列号转换装置,其特征在于,用于第一系统的19位序列号与更新后的第二系统的35位序列号的转换,其中19位序列号为可见字符串,35位序列号包括前25位流水号和后10位纯数字的子交易序列号,包括:
第一判断单元,用于根据所述35位序列号的后10位的连续非零有效位数确定转码方式,若所述连续非零有效位数为0-3,则调用第一处理单元,若所述连续非零有效位数为4-7,则调用第二处理单元;
第一处理单元,用于将所述35位序列号分拆为3部分转码为19位序列号;
第二处理单元,用于将所述35位序列号分拆为4部分转码为19位序列号。
14.一种序列号转换装置,其特征在于,用于第一系统的19位序列号与更新后的第二系统的35位序列号的转换,其中19位序列号为可见字符串,35位序列号包括前25位流水号和后10位纯数字的子交易序列号,包括:
第二判断单元,用于根据所述19位序列号最后4位解码得到的3字节整数确定转码方式,若所述3字节整数的高2bit为第一标识码,则调用第三处理单元,若所述3字节整数的高2bit为第二标识码,则调用第四处理单元;
第三处理单元,用于将所述19位序列号分拆为3部分转码为35位序列号;
第四处理单元,用于将所述19位序列号分拆为4部分转码为35位序列号。
15.根据权利要求13或14所述的装置,其特征在于,所述35位序列号的前25位包括6位节点编码、3位同一节点内的机器编码、10位世界协调时UTC编码和6位序列数。
16.根据权利要求13或14所述的装置,其特征在于,所述35位序列号中的6位序列数为单向递增,并且在到达999999后归零。
17.根据权利要求12所述的装置,其特征在于,所述第一处理单元,用于实现下述处理:将所述35位序列号分拆为取值范围为36、10、10且二进制长度分别为6字节、4字节、3字节且对应base64编码后长度分别为8字节、6字节、4字节的3部分,并且在上述(8+6+4)个字节的第12个字节添加业务标识字符后,得到19位序列号。
18.根据权利要求12所述的装置,其特征在于,所述第二处理单元,用于实现下述处理:将所述35位序列号分拆为取值范围为2、36、10、10且二进制长度分别为2字节、2字节、6字节和3字节且对应base64编码后长度分别为3字节、3字节、8字节、4字节的4部分,并且在上述(3+3+8+4)个字节的第12个字节添加业务标识字符后,得到19位序列号。
19.根据权利要求17所述的装置,其特征在于,所述装置还包括第一添加单元,用于实现下述处理:得到所述35位序列号的二进制字节为3字节的整数后,将该3字节整数高2bit转移到所述35位序列号第10-21位字符串得到的二进制字节数为4字节整数的高2bit,然后将该3字节整数高2bit设置为所述第一标识码。
20.根据权利要求18所述的装置,其特征在于,所述装置还包括第二添加单元,用于实现下述处理:得到所述35位序列号的二进制字节数为3字节的整数后,将该3字节整数高2bit转移到所述35位序列号第10-25位字符串得到的二进制字节数为6字节整数的高2bit,然后将该3字节整数高2bit设置为所述第二标识码。
21.根据权利要求13所述的装置,其特征在于,所述第三处理单元,用于实现下述处理:将所述19位序列号的第12位的业务标识字符去除之后,将剩下的18位字符串依次分为8字节、6字节、4字节的3部分,使用base64算法对所述3部分进行解码得到对应的二进制长度为6字节的第一整数值、二进制长度为4字节的第二整数值和二进制长度为3字节的第三整数值,在二进制长度为4字节的第二整数值中去除第一标识码,并根据所述第二整数值得到恢复年月后的第二整数值,根据所述第一整数值、恢复年月后的第二整数值和所述第三整数值得到35位序列号的前28位序列号,在该28位序列号之后添加7个零,得到35位序列号。
22.根据权利要求13所述的装置,其特征在于,所述第四处理单元,用于实现下述处理:将所述19位序列号的第12位的业务标识字符去除之后,将剩下的18位字符串依次分为3字节、3字节、8字节、4字节的4部分,使用base64算法对所述4部分进行解码得到对应的二进制长度为2字节的第一整数值、二进制长度为2字节的第二整数值、二进制长度为6字节的第三整数值和二进制长度为3字节的第四整数值,在二进制长度为6字节的第三整数值中去除所述第二标识码,并根据所述第三整数值得到恢复年月后的第三整数值,根据所述第一整数值、所述第二整数值、恢复年月后的第三整数值和所述第四整数值得到35位序列号的前32位,在该32位序列号之后添加3个零,得到35位序列号。
23.根据权利要求21所述的装置,其特征在于,所述第三处理单元在二进制长度为4字节的字符串中去除第一标识码包括:将二进制长度为4字节的第二整数值的高2bit转移到将所述19位序列号最后4位解码得到的3字节整数的高2bit的第一标识码位置。
24.根据权利要求22所述的装置,其特征在于,所述第四处理单元在二进制长度为6字节的字符串中去除所述第二标识码包括:将二进制长度为6字节的第三整数值的高2bit转移到将所述19位序列号最后4位解码得到的3字节整数的高2bit的第二标识码位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410252082.9A CN104090738A (zh) | 2014-06-09 | 2014-06-09 | 一种序列号转换方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410252082.9A CN104090738A (zh) | 2014-06-09 | 2014-06-09 | 一种序列号转换方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104090738A true CN104090738A (zh) | 2014-10-08 |
Family
ID=51638457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410252082.9A Pending CN104090738A (zh) | 2014-06-09 | 2014-06-09 | 一种序列号转换方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104090738A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105072160A (zh) * | 2015-07-17 | 2015-11-18 | 联动优势科技有限公司 | 一种流水号生成方法、装置及服务器 |
CN111669616A (zh) * | 2020-06-23 | 2020-09-15 | 杭州海康威视系统技术有限公司 | 一种编解码方法、装置及计算机存储介质 |
CN114338466A (zh) * | 2021-12-21 | 2022-04-12 | 卡斯柯信号有限公司 | 一种自适应的丢包检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002023441A1 (en) * | 2000-09-14 | 2002-03-21 | Netspend Corporation | A transaction system and method using cash cards and a charge settlement network |
CN101360159A (zh) * | 2008-09-26 | 2009-02-04 | 中兴通讯股份有限公司 | 一种独立vc系统兼容不同充值卡的实现方法及装置 |
CN101964033A (zh) * | 2010-09-29 | 2011-02-02 | 江苏康众数字医疗设备有限公司 | 一种平板探测器机器识别码的生成方法及扩展应用方法 |
CN102375444A (zh) * | 2010-07-16 | 2012-03-14 | 通用电气公司 | 未采用智能计量表的结合负载选择性的电器 |
-
2014
- 2014-06-09 CN CN201410252082.9A patent/CN104090738A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002023441A1 (en) * | 2000-09-14 | 2002-03-21 | Netspend Corporation | A transaction system and method using cash cards and a charge settlement network |
CN101360159A (zh) * | 2008-09-26 | 2009-02-04 | 中兴通讯股份有限公司 | 一种独立vc系统兼容不同充值卡的实现方法及装置 |
CN102375444A (zh) * | 2010-07-16 | 2012-03-14 | 通用电气公司 | 未采用智能计量表的结合负载选择性的电器 |
CN101964033A (zh) * | 2010-09-29 | 2011-02-02 | 江苏康众数字医疗设备有限公司 | 一种平板探测器机器识别码的生成方法及扩展应用方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105072160A (zh) * | 2015-07-17 | 2015-11-18 | 联动优势科技有限公司 | 一种流水号生成方法、装置及服务器 |
CN111669616A (zh) * | 2020-06-23 | 2020-09-15 | 杭州海康威视系统技术有限公司 | 一种编解码方法、装置及计算机存储介质 |
CN114338466A (zh) * | 2021-12-21 | 2022-04-12 | 卡斯柯信号有限公司 | 一种自适应的丢包检测方法 |
CN114338466B (zh) * | 2021-12-21 | 2023-10-31 | 卡斯柯信号有限公司 | 一种自适应的丢包检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100495318C (zh) | 整型数据的压缩方法、装置及解压缩方法、装置 | |
CN101840366B (zh) | 环链式n+1位奇偶校验码的存储方法 | |
CN113676190A (zh) | 一种Polar码编码方法、装置 | |
CN110851748A (zh) | 短链接的生成方法、服务器、存储介质及计算机设备 | |
US11070231B2 (en) | Reducing storage of blockchain metadata via dictionary-style compression | |
CN103902342A (zh) | 一种封闭环境下系统更新升级方法及系统 | |
CN104090738A (zh) | 一种序列号转换方法和装置 | |
CN116151740B (zh) | 一种库存交易数据过程安全管理系统及云平台 | |
CN115952528B (zh) | 一种多尺度联合文本隐写方法及系统 | |
CN105528347A (zh) | 数据块储存方法、数据查询方法和数据修改方法 | |
CN105512523A (zh) | 一种匿名化的数字水印嵌入和提取方法 | |
CN110825919B (zh) | Id数据处理方法和装置 | |
CN112181307A (zh) | 基于区块链的分布式数据冗余存储方法和电子设备 | |
CN112182108A (zh) | 基于区块链的分布式数据存储更新方法和电子设备 | |
CN112182112A (zh) | 基于区块链的分布式数据动态存储方法和电子设备 | |
CN103714300A (zh) | 基于分布式gpu和彩虹表的加密分析系统及其方法 | |
CN106846190A (zh) | 一种知识产权案件管理系统 | |
CN111211887A (zh) | 资源加密方法、系统、装置及计算机可读存储介质 | |
CN115208881B (zh) | 区块链的共识方法、设备及存储介质 | |
CN114065269B (zh) | 无绑定型非同质化代币的生成方法和解析方法和存储介质 | |
CN108108267B (zh) | 数据的恢复方法和装置 | |
CN115168494A (zh) | 一种基于区块链技术的分布式数据存储方法及系统 | |
CN113986853A (zh) | 一种区块链数据存储与共享方法、系统、设备及终端 | |
CN114025024A (zh) | 一种数据传输方法及装置 | |
CN115276889A (zh) | 解码处理方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141008 |
|
WD01 | Invention patent application deemed withdrawn after publication |