本文作者:kaifamei

一种密钥的序列化方法、反序列化方法和装置与流程

更新时间:2025-03-10 07:06:43 0条评论

一种密钥的序列化方法、反序列化方法和装置与流程



1.本发明涉及密钥序列化技术领域,尤其涉及一种密钥的序列化方法、反序列化方法和装置。


背景技术:



2.随着越来越多的业务活动可以通过网络办理,大量的业务数据通过网络进行查询和传输等操作,数据的安全性成为网络安全中至关重要的部分,通过密钥进行加密的技术即是为了网络场景下数据的安全性操作而产生。
3.现有的密钥相关的处理方案中所采用的密钥都是公开且通用的,大多数仅仅是一些基本数据类型的随机数,这样生成的密钥安全性较低。
4.因此现在亟需一种密钥的序列化方法和反序列化方法来对密钥进行处理,进而提高密钥的安全性。


技术实现要素:



5.本发明实施例提供一种密钥的序列化方法,用以提高密钥的安全性,该方法包括:
6.根据密钥结构体模型,生成密钥结构体,所述密钥结构体包括多个按照确定序号排列的成员变量;
7.利用随机数发生器生成多个成员变量分别对应的变量值;
8.根据所述成员变量的变量类型,将与所述成员变量对应的变量值进行相应类型的转换,得到所述成员变量对应的密钥字段;
9.对成员变量的字面值进行脱敏处理,得到变量字段,其中所述成员变量的字面值用于表征成员变量的变量类型;
10.将任一变量字段以及与该变量字段对应的密钥字段进行混淆处理,得到一指定序号的键值对,其中键对应该变量字段,值对应该密钥字段;
11.按照指定序号将所有键值对排序后得到序列化后的密钥。
12.优选的,所述根据所述成员变量的变量类型,将与所述成员变量对应的变量值进行相应类型的转换,得到所述成员变量对应的密钥字段进一步包括:
13.若所述成员变量的变量类型为基本数据类型,则利用序列化库函数将与所述成员变量对应的变量值转换为字符串,将所述字符串作为所述成员变量对应的密钥字段;
14.若所述成员变量的变量类型为指针类型,则根据与所述成员变量对应的变量值,确定并读取指针所指向的内存区域的数据,利用序列化库函数将所述数据转换为字符串,将所述字符串作为所述成员变量对应的密钥字段。
15.优选的,所述对成员变量的字面值进行脱敏处理,得到变量字段进一步包括:
16.利用预先建立的对照关系表,确定成员变量的字面值所对应的对照值,将所述对照值作为变量字段。
17.优选的,所述将任一变量字段以及与该变量字段对应的密钥字段进行混淆处理,
得到一指定序号的键值对,其中键对应该变量字段,值对应该密钥字段进一步包括:
18.将任一变量字段以及与该变量字段对应的密钥字段作为一键值对;
19.将该变量字段对应的成员变量在按照确定序号排列时的确定序号,作为该键值对的确定序号;
20.根据该键值对的确定序号以及预先建立的映射关系表,确定该键值对所对应的指定序号。
21.优选的,所述按照指定序号将所有键值对排序后得到序列化后的密钥之后还包括:
22.将按照指定序号排序后的所有键值对划分形成设定数目的集合;
23.将所有集合存储至多个服务器中,其中每一服务器均存储所有集合,以确保负载均衡。
24.优选的,所述多个服务器包括一个主服务器和多个从服务器;
25.所述将所有集合存储至多个服务器中进一步包括:
26.将所有集合写入主服务器中;
27.所述主服务器将所有集合下发至多个从服务器,将所有集合存储至多个从服务器中。
28.本发明实施例还提供一种一种密钥的反序列化方法,包括:
29.根据密钥结构体模型,生成初始密钥结构体;
30.获取按照指定序号排序的所有键值对,其中键对应一变量字段,值对应一密钥字段;
31.s110:根据键值对的指定序号对任一键值对进行反混淆处理,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段;
32.s120:对所述变量字段进行反脱敏处理,得到一成员变量的字面值;
33.s130:根据所述成员变量的字面值确定所述成员变量的变量类型;
34.s140:根据所述成员变量的变量类型,将对应的密钥字段进行反转换,得到成员变量对应的变量值;
35.根据所述成员变量对应的变量值,以及所述初始密钥结构体,得到密钥结构体。
36.优选的,所述根据键值对的指定序号对任一键值对进行反混淆处理,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段进一步包括:
37.根据任一键值对的指定序号以及预先建立的映射关系表,确定该键值对所对应的确定序号;
38.将该确定序号作为键值对中变量字段的确定序号,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段。
39.优选的,所述对所述变量字段进行反脱敏处理,得到一成员变量的字面值进一步包括:
40.将所述变量字段作为对照值,利用预先建立的对照关系表,确定所述对照值所对应的值,将该值作为成员变量的字面值。
41.优选的,所述根据所述成员变量的变量类型,将对应的密钥字段进行反转换,得到成员变量对应的变量值进一步包括:
42.若所述成员变量的变量类型为基本数据类型,则利用反序列化库函数将对应的密钥字段反转换得到对应的变量值;
43.若所述成员变量的变量类型为指针类型,则利用反序列化库函数将对应的密钥字段反转换得到指针所指向的内存区域中存储的变量值。
44.优选的,所述获取按照指定序号排序的所有键值对进一步包括:
45.由多个服务器中选取设定数目个服务器;
46.由选取的服务器中取一个集合;其中取得的任意两个集合不相同,任一集合中包括至少一个按照指定序号排序的键值对,取得的所有集合中总计包括所有按照指定序号排序的键值对;
47.通过上述所述的密钥的反序列化方法中的s110至s140并行处理多个集合。
48.优选的,所述多个服务器包括一个主服务器和多个从服务器;
49.所述由多个服务器中选取设定数目个服务器进一步包括:
50.由多个从服务器中选取设定数目个服务器。
51.本发明实施例还提供一种密钥的序列化装置,包括:
52.结构体生成模块,用于根据密钥结构体模型,生成密钥结构体,所述密钥结构体包括多个按照确定序号排列的成员变量;
53.变量值生成模块,用于利用随机数发生器生成多个成员变量分别对应的变量值;
54.密钥字段生成模块,用于根据所述成员变量的变量类型,将与所述成员变量对应的变量值进行相应类型的转换,得到所述成员变量对应的密钥字段;
55.变量字段生成模块,用于对成员变量的字面值进行脱敏处理,得到变量字段,其中所述成员变量的字面值用于表征成员变量的变量类型;
56.混淆处理模块,用于将任一变量字段以及与该变量字段对应的密钥字段进行混淆处理,得到一指定序号的键值对,其中键对应该变量字段,值对应该密钥字段;
57.生成模块,用于按照指定序号将所有键值对排序后得到序列化后的密钥。
58.本发明实施例还提供一种密钥的反序列化装置,包括:
59.结构体生成模块,用于根据密钥结构体模型,生成初始密钥结构体;
60.键值对生成模块,用于获取按照指定序号排序的所有键值对,其中键对应一变量字段,值对应一密钥字段;
61.反混淆模块,用于根据键值对的指定序号对任一键值对进行反混淆处理,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段;
62.反脱敏模块,用于对所述变量字段进行反脱敏处理,得到一成员变量的字面值;
63.类型确定模块,用于根据所述成员变量的字面值确定所述成员变量的变量类型;
64.反转换模块,用于根据所述成员变量的变量类型,将对应的密钥字段进行反转换,得到成员变量对应的变量值;
65.密钥生成模块,用于根据所述成员变量对应的变量值,以及所述初始密钥结构体,得到密钥结构体。
66.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
67.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有
计算机程序,所述计算机程序被处理器执行时实现上述方法。
68.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述方法。
69.本发明实施例中,通过随机数发生器生成密钥结构体中成员变量对应的变量值,由于成员变量按照确定序号排列,成员变量对应的确定序号即为变量值对应的确定序号,根据确定序号将所有变量值进行排列后即为完整的密钥。为了提高密钥的安全性,需要对变量值进行转换得到密钥字段,对成员变量的字面值进行脱敏处理得到变量字段,将变量字段以及对应的密钥字段进行混淆处理,得到指定序号的键值对,按照指定序号将所有键值对排序得到序列化后的密钥,此时序列化后的密钥的安全性较高。而通过获取按照指定序号排序的所有键值对,根据键值对进行一系列反混淆、反脱敏和反转换后,得到成员变量对应的变量值,然后将对应的变量值写入初始密钥结构体中,即可得到密钥结构体,密钥结构体中所有成员变量对应的变量值依确定序号取出即可得到安全性较高的完整密钥。
附图说明
70.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
71.图1为本发明实施例中提供的一种密钥的序列化方法的流程示意图;
72.图2为本发明实施例中提供的用于根据成员变量的变量类型,将与成员变量对应的变量值进行相应类型的转换,得到成员变量对应的密钥字段的流程示意图;
73.图3为本发明实施例中提供的用于将任一变量字段以及与该变量字段对应的密钥字段进行混淆处理,得到一指定序号的键值对的流程示意图;
74.图4为本发明实施例中提供的在按照指定序号将所有键值对排序后得到序列化后的密钥之后的流程示意图;
75.图5为本发明实施例中提供的用于将所有集合存储至多个服务器中的流程示意图;
76.图6为本发明实施例中提供的一种密钥的反序列化方法的流程示意图;
77.图7为本发明实施例中提供的用于根据键值对的指定序号对任一键值对进行反混淆处理,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段的流程示意图;
78.图8为本发明实施例中提供的用于根据成员变量的变量类型,将对应的密钥字段进行反转换,得到成员变量对应的变量值的流程示意图;
79.图9为本发明实施例中提供的一种密钥的序列化装置的结构示意图;
80.图10为本发明实施例中提供的一种密钥的反序列化装置的结构示意图;
81.图11为本发明实施例中提供的计算机设备的结构示意图。
82.附图符号说明:
83.10、结构体生成模块;
84.11、变量值生成模块;
85.12、密钥字段生成模块;
86.13、变量字段生成模块;
87.14、混淆处理模块;
88.15、生成模块;
89.20、结构体生成模块;
90.21、键值对生成模块;
91.22、反混淆模块;
92.23、反脱敏模块;
93.24、类型确定模块;
94.25、反转换模块;
95.26、密钥生成模块;
96.1102、计算机设备;
97.1104、处理器;
98.1106、存储器;
99.1108、驱动机构;
100.1110、输入/输出模块;
101.1112、输入设备;
102.1114、输出设备;
103.1116、呈现设备;
104.1118、图形用户接口;
105.1120、网络接口;
106.1122、通信链路;
107.1124、通信总线。
具体实施方式
108.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
109.现有的密钥相关的处理方案中所采用的密钥都是公开且通用的,大多数仅仅是一些基本数据类型的随机数,这样生成的密钥安全性较低。
110.为了解决上述问题,本发明实施例提供了一种密钥的序列化方法。图1是本发明实施例提供的一种密钥的序列化方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
111.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
112.参照图1,本发明示出了一种密钥的序列化方法,包括:
113.s101:根据密钥结构体模型,生成密钥结构体,所述密钥结构体包括多个按照确定序号排列的成员变量;
114.s102:利用随机数发生器生成多个成员变量分别对应的变量值;
115.s103:根据所述成员变量的变量类型,将与所述成员变量对应的变量值进行相应类型的转换,得到所述成员变量对应的密钥字段;
116.s104:对成员变量的字面值进行脱敏处理,得到变量字段,其中所述成员变量的字面值用于表征成员变量的变量类型;
117.s105:将任一变量字段以及与该变量字段对应的密钥字段进行混淆处理,得到一指定序号的键值对,其中键对应该变量字段,值对应该密钥字段;
118.s106:按照指定序号将所有键值对排序后得到序列化后的密钥。
119.结构体是一种数据类型,描述了一块内存空间的大小及解释意义,一般来说结构体由不同类型的成员变量组成。密钥结构体模型用于生成密钥结构体,密钥结构体模型中成员变量的排列顺序是固定的,因此根据密钥结构体模型生成的密钥结构体中的成员变量按照确定序号排列。
120.利用随机数发生器生成多个成员变量分别对应的变量值,多个变量值按照分别对应的多个成员变量的确定序号排列后即构成密钥。例如密钥结构体中包括按照确定序号排列的成员变量a、b和c,利用随机数发生器生成a对应的变量值为1,b对应的变量值为3,c对应的变量值为5,则密钥即为135。需要说明的是,若成员变量中的成员变量为数组,则数组中每个元素均对应一个变量值,例如成员变量c是长度为3的一维数组,利用随机数发生器生成成员变量的3个变量值为7、9、6。
121.由于成员变量的类型不同,例如成员变量可能为整型、字符型、浮点型和指针型,但整体上可以将整型、字符型和浮点型等统一为基本数据类型,进而将成员变量的类型分为基本数据类型和指针类型。根据成员变量的变量类型不同,将与成员变量对应的变量值进行相应类型的转换,可以得到成员变量对应的密钥字段。
122.进一步的,成员变量的字面值用于表征成员变量的变量类型,例如整型变量a,其中字母a为整型变量的字面值,用于表征该成员变量为整型变量。对成员变量的字面值进行脱敏处理后,可以得到变量字段,脱敏处理的目的是对成员变量的信息进行隐藏。
123.对于成员变量来说,对应有变量值,但变量值转换为密钥字段,成员变量的处理后得到变量字段,也就是说变量字段对应有密钥字段,变量字段和对应的密钥字段构成一个键值对。由于成员变量按照确定序号排列,因此键值对也是按照确定序号排列,后续对变量字段以及对应的密钥字段进行混淆处理的目的是将键值对的排列序号进行混淆,得到指定序号排列的键值对,例如将原来序号为1的键值对混淆为序号为5的键值对,按照指定序号将所有键值对排序后即可得到序列化后的密钥。
124.在本发明实施例中,通过随机数发生器生成密钥结构体中成员变量对应的变量
值,由于成员变量按照确定序号排列,成员变量对应的确定序号即为变量值对应的确定序号,根据确定序号将所有变量值进行排列后即为完整的密钥。为了提高密钥的安全性,需要对变量值进行转换得到密钥字段,对成员变量的字面值进行脱敏处理得到变量字段,将变量字段以及对应的密钥字段进行混淆处理,得到指定序号的键值对,按照指定序号将所有键值对排序得到序列化后的密钥,此时序列化后的密钥的安全性较高。
125.参照图2,所述根据所述成员变量的变量类型,将与所述成员变量对应的变量值进行相应类型的转换,得到所述成员变量对应的密钥字段进一步包括:
126.s201:若所述成员变量的变量类型为基本数据类型,则利用序列化库函数将与所述成员变量对应的变量值转换为字符串,将所述字符串作为所述成员变量对应的密钥字段;
127.s202:若所述成员变量的变量类型为指针类型,则根据与所述成员变量对应的变量值,确定并读取指针所指向的内存区域的数据,利用序列化库函数将所述数据转换为字符串,将所述字符串作为所述成员变量对应的密钥字段。
128.序列化库函数可以将变量值转换为字符串,但是对于指针类型的成员变量来说,指针型对应的变量值代表的是内存区域,首先读取指针对应的变量值,即确定指针所指向的内存区域,然后将该内存区域中的数据读取出来,通过序列化库函数将该数据转换为字符串,将字符串作为密钥字段。需要说明的是,可以在每个密钥字段末尾添加统一的字符后缀,作为密钥字段结束标识。
129.在本发明实施例中,所述对成员变量的字面值进行脱敏处理,得到变量字段进一步包括:
130.利用预先建立的对照关系表,确定成员变量的字面值所对应的对照值,将所述对照值作为变量字段。
131.对照关系表中记录了多组值之间的对应关系,根据成员变量的字面值查表即可得到对应的对照值,例如成员变量的字面值为a,对应的对照值为m。
132.参照图3,所述将任一变量字段以及与该变量字段对应的密钥字段进行混淆处理,得到一指定序号的键值对,其中键对应该变量字段,值对应该密钥字段进一步包括:
133.s301:将任一变量字段以及与该变量字段对应的密钥字段作为一键值对;
134.s302:将该变量字段对应的成员变量在按照确定序号排列时的确定序号,作为该键值对的确定序号;
135.s303:根据该键值对的确定序号以及预先建立的映射关系表,确定该键值对所对应的指定序号。
136.键值对中键对应变量字段,值对应密钥字段,例如键值对m-33,其中m为变量字段,33为密钥字段。映射关系表中记录了确定序号与指定序号之间的映射关系,根据键值对的确定序号通过查表可以得到与之对应的指定序号,例如键值对的确定序号为1,对应的指定序号为3。
137.在本发明实施例中,经过上述步骤之后,例如得到指定序号为1的键值对m-33,指定序号为2的键值对c-52,指定序号为3的键值对h-67,则得到序列化后的密钥为335267。
138.在本发明实施例中,参照图4,所述按照指定序号将所有键值对排序后得到序列化后的密钥之后还包括:
139.s401:将按照指定序号排序后的所有键值对划分形成设定数目的集合;
140.s402:将所有集合存储至多个服务器中,其中每一服务器均存储所有集合,以确保负载均衡。
141.例如,可以将所有键值对划分形成3个集合或者4个集合等,以划分形成3个集合为例,第1个集合中包括指定序号为1的键值对m-33,第2个集合中包括指定序号为2的键值对c-52,第3个集合中包括指定序号为3的键值对h-67,将3个集合存储至多个服务器中。
142.其中,所述多个服务器包括一个主服务器和多个从服务器;
143.参照图5,所述将所有集合存储至多个服务器中进一步包括:
144.s501:将所有集合写入主服务器中;
145.s502:所述主服务器将所有集合下发至多个从服务器,将所有集合存储至多个从服务器中。
146.所有集合写入主服务器中,由主服务器在合适时间下发至多个从服务器,以保证数据的一致性。
147.为了确保数据完整性,还可以在多个从服务器中写入校验值。
148.参照图6,本发明还包括一种密钥的反序列化方法,包括:
149.s000:根据密钥结构体模型,生成初始密钥结构体;
150.s100:获取按照指定序号排序的所有键值对,其中键对应一变量字段,值对应一密钥字段;
151.s110:根据键值对的指定序号对任一键值对进行反混淆处理,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段;
152.s120:对所述变量字段进行反脱敏处理,得到一成员变量的字面值;
153.s130:根据所述成员变量的字面值确定所述成员变量的变量类型;
154.s140:根据所述成员变量的变量类型,将对应的密钥字段进行反转换,得到成员变量对应的变量值;
155.s150:根据所述成员变量对应的变量值,以及所述初始密钥结构体,得到密钥结构体。
156.根据密钥结构体模型生成初始密钥结构体,在s000中的密钥结构体模型与s101中的密钥结构体模型是同一个模型,因此s101中生成的密钥结构体和s000生成的初始密钥结构体中的成员变量的类型均相同,且成员变量均按照确定序号排列。但是对于s101中的密钥结构体来说,需要利用随机数发生器生成多个成员变量分别对于的变量值,而对于s000中的初始密钥结构体来说,不需要利用随机数发生器生成多个成员变量分别对于的变量值,而是需要通过获取按照指定序号排序的所有键值对,根据键值对进行一系列反混淆、反脱敏和反转换后,得到成员变量对应的变量值,然后将对应的变量值写入初始密钥结构体中,即可得到密钥结构体,密钥结构体中所有成员变量对应的变量值依确定序号取出即可得到完整密钥。
157.进一步的,参照图7,所述根据键值对的指定序号对任一键值对进行反混淆处理,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段进一步包括:
158.s200:根据任一键值对的指定序号以及预先建立的映射关系表,确定该键值对所对应的确定序号;
159.s210:将该确定序号作为键值对中变量字段的确定序号,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段。
160.映射关系表中记录了确定序号与指定序号之间的映射关系,根据键值对的指定序号通过查表可以得到与之对应的确定序号,键值对的确定序号即为变量字段的确定序号。
161.在本发明实施例中,所述对所述变量字段进行反脱敏处理,得到一成员变量的字面值进一步包括:
162.将所述变量字段作为对照值,利用预先建立的对照关系表,确定所述对照值所对应的值,将该值作为成员变量的字面值。
163.对照关系表中记录了多组值之间的对照关系,通过查表可以确定变量字段对应的值,即得到成员变量的字面值。
164.根据成员变量的字面值可以进一步确定成员变量的变量类型,例如可以利用预设表记录成员变量的字面值和对应的变量类型,通过查表确定成员变量的变量类型;还可以直接对照初始密钥结构体,因为初始密钥结构体中的成员变量的字面值和变量类型是确定的,通过将成员变量的字面值对照初始密钥结构体可以确定变量类型。
165.参照图8,所述根据所述成员变量的变量类型,将对应的密钥字段进行反转换,得到成员变量对应的变量值进一步包括:
166.s300:若所述成员变量的变量类型为基本数据类型,则利用反序列化库函数将对应的密钥字段反转换得到对应的变量值;
167.s310:若所述成员变量的变量类型为指针类型,则利用反序列化库函数将对应的密钥字段反转换得到指针所指向的内存区域中存储的变量值。
168.利用反序列化库函数可以对密钥字段进行反转换,得到对应的变量值,将变量值写入初始密钥结构体中,即可得到密钥结构体。
169.在本发明实施例中,所述获取按照指定序号排序的所有键值对进一步包括:
170.由多个服务器中选取设定数目个服务器;
171.由选取的服务器中取一个集合;其中取得的任意两个集合不相同,任一集合中包括至少一个按照指定序号排序的键值对,取得的所有集合中总计包括所有按照指定序号排序的键值对;
172.通过上述所述的密钥的反序列化方法中的s110至s140并行处理多个集合。
173.其中所述多个服务器包括一个主服务器和多个从服务器;
174.所述由多个服务器中选取设定数目个服务器进一步包括:
175.由多个从服务器中选取设定数目个服务器。
176.主服务器只写入不读取,读取只在从服务器中进行,选取设定数目个从服务器时可以按照空闲程度进行选取,选取其中较为空闲的从服务器。由每个从服务器中读取一个集合,每个集合中包括至少一个键值对,所有集合中组成的键值对即为全部键值对。在处理多个集合时采取并行处理的方法,这样能够加快处理速度,提高处理效率。
177.当然在由从服务器中读取集合之前可以先通过校验值来验证数据完整性,一般采用循环冗余校验(crc)算法计算校验值,用来核实数据传输和保存过程中的正确性和完整性,如果读取后计算的校验值与存储的校验值不一致,则代表这个集合中的键值对或校验值有误,这个集合会被抛弃,并从其他从服务器中重新读取。
178.本发明实施例中还提供了一种密钥的序列化装置,如下面的实施例所述。由于该装置解决问题的原理与一种密钥的序列化方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
179.参照图9,一种密钥的序列化装置,包括:
180.结构体生成模块10,用于根据密钥结构体模型,生成密钥结构体,所述密钥结构体包括多个按照确定序号排列的成员变量;
181.变量值生成模块11,用于利用随机数发生器生成多个成员变量分别对应的变量值;
182.密钥字段生成模块12,用于根据所述成员变量的变量类型,将与所述成员变量对应的变量值进行相应类型的转换,得到所述成员变量对应的密钥字段;
183.变量字段生成模块13,用于对成员变量的字面值进行脱敏处理,得到变量字段,其中所述成员变量的字面值用于表征成员变量的变量类型;
184.混淆处理模块14,用于将任一变量字段以及与该变量字段对应的密钥字段进行混淆处理,得到一指定序号的键值对,其中键对应该变量字段,值对应该密钥字段;
185.生成模块15,用于按照指定序号将所有键值对排序后得到序列化后的密钥。
186.本发明实施例中还提供了一种密钥的反序列化装置,如下面的实施例所述。由于该装置解决问题的原理与一种密钥的反序列化方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
187.参照图10,一种密钥的反序列化装置,包括:
188.结构体生成模块20,用于根据密钥结构体模型,生成初始密钥结构体;
189.键值对生成模块21,用于获取按照指定序号排序的所有键值对,其中键对应一变量字段,值对应一密钥字段;
190.反混淆模块22,用于根据键值对的指定序号对任一键值对进行反混淆处理,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段;
191.反脱敏模块23,用于对所述变量字段进行反脱敏处理,得到一成员变量的字面值;
192.类型确定模块24,用于根据所述成员变量的字面值确定所述成员变量的变量类型;
193.反转换模块25,用于根据所述成员变量的变量类型,将对应的密钥字段进行反转换,得到成员变量对应的变量值;
194.密钥生成模块26,用于根据所述成员变量对应的变量值,以及所述初始密钥结构体,得到密钥结构体。
195.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
196.参照图11所示,其中上述方法运行在计算机设备1102上。计算机设备1102可以包括一个或多个处理器1104,诸如一个或多个中央处理单元(cpu)或图形处理器(gpu),每个处理单元可以实现一个或多个硬件线程。计算机设备1102还可以包括任何存储器1106,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施方式中,存储器1106上并可在处理器1104上运行的计算机程序,所述计算机程序被所述处理器1104运行时,可以执行根据上述方法的指令。非限制性的,比如,存储器1106可以包括以下任一项或多种组
合:任何类型的ram,任何类型的rom,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备1102的固定或可移除部件。在一种情况下,当处理器1104执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备1102可以执行相关联指令的任一操作。计算机设备1102还包括用于与任何存储器交互的一个或多个驱动机构1108,诸如硬盘驱动机构、光盘驱动机构等。
197.计算机设备1102还可以包括输入/输出模块1110(i/o),其用于接收各种输入(经由输入设备1112)和用于提供各种输出(经由输出设备1114)。一个具体输出机构可以包括呈现设备1116和相关联的图形用户接口1118(gui)。在其他实施例中,还可以不包括输入/输出模块1110(i/o)、输入设备1112以及输出设备1114,仅作为网络中的一台计算机设备。计算机设备1102还可以包括一个或多个网络接口1120,其用于经由一个或多个通信链路1122与其他设备交换数据。一个或多个通信总线1124将上文所描述的部件耦合在一起。
198.通信链路1122可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路1122可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
199.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。
200.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述方法。
201.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
202.为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
203.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
204.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
205.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
206.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
207.在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
208.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
209.另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
210.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
211.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:


1.一种密钥的序列化方法,其特征在于,包括:根据密钥结构体模型,生成密钥结构体,所述密钥结构体包括多个按照确定序号排列的成员变量;利用随机数发生器生成多个成员变量分别对应的变量值;根据所述成员变量的变量类型,将与所述成员变量对应的变量值进行相应类型的转换,得到所述成员变量对应的密钥字段;对成员变量的字面值进行脱敏处理,得到变量字段,其中所述成员变量的字面值用于表征成员变量的变量类型;将任一变量字段以及与该变量字段对应的密钥字段进行混淆处理,得到一指定序号的键值对,其中键对应该变量字段,值对应该密钥字段;按照指定序号将所有键值对排序后得到序列化后的密钥。2.如权利要求1所述的密钥的序列化方法,其特征在于,所述根据所述成员变量的变量类型,将与所述成员变量对应的变量值进行相应类型的转换,得到所述成员变量对应的密钥字段进一步包括:若所述成员变量的变量类型为基本数据类型,则利用序列化库函数将与所述成员变量对应的变量值转换为字符串,将所述字符串作为所述成员变量对应的密钥字段;若所述成员变量的变量类型为指针类型,则根据与所述成员变量对应的变量值,确定并读取指针所指向的内存区域的数据,利用序列化库函数将所述数据转换为字符串,将所述字符串作为所述成员变量对应的密钥字段。3.如权利要求1所述的密钥的序列化方法,其特征在于,所述对成员变量的字面值进行脱敏处理,得到变量字段进一步包括:利用预先建立的对照关系表,确定成员变量的字面值所对应的对照值,将所述对照值作为变量字段。4.如权利要求1所述的密钥的序列化方法,其特征在于,所述将任一变量字段以及与该变量字段对应的密钥字段进行混淆处理,得到一指定序号的键值对,其中键对应该变量字段,值对应该密钥字段进一步包括:将任一变量字段以及与该变量字段对应的密钥字段作为一键值对;将该变量字段对应的成员变量在按照确定序号排列时的确定序号,作为该键值对的确定序号;根据该键值对的确定序号以及预先建立的映射关系表,确定该键值对所对应的指定序号。5.如权利要求1所述的密钥的序列化方法,其特征在于,所述按照指定序号将所有键值对排序后得到序列化后的密钥之后还包括:将按照指定序号排序后的所有键值对划分形成设定数目的集合;将所有集合存储至多个服务器中,其中每一服务器均存储所有集合,以确保负载均衡。6.如权利要求5所述的密钥的序列化方法,其特征在于,所述多个服务器包括一个主服务器和多个从服务器;所述将所有集合存储至多个服务器中进一步包括:将所有集合写入主服务器中;
所述主服务器将所有集合下发至多个从服务器,将所有集合存储至多个从服务器中。7.一种密钥的反序列化方法,其特征在于,包括:根据密钥结构体模型,生成初始密钥结构体;获取按照指定序号排序的所有键值对,其中键对应一变量字段,值对应一密钥字段;s110:根据键值对的指定序号对任一键值对进行反混淆处理,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段;s120:对所述变量字段进行反脱敏处理,得到一成员变量的字面值;s130:根据所述成员变量的字面值确定所述成员变量的变量类型;s140:根据所述成员变量的变量类型,将对应的密钥字段进行反转换,得到成员变量对应的变量值;根据所述成员变量对应的变量值,以及所述初始密钥结构体,得到密钥结构体。8.如权利要求7所述的密钥的反序列化方法,其特征在于,所述根据键值对的指定序号对任一键值对进行反混淆处理,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段进一步包括:根据任一键值对的指定序号以及预先建立的映射关系表,确定该键值对所对应的确定序号;将该确定序号作为键值对中变量字段的确定序号,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段。9.如权利要求7所述的密钥的反序列化方法,其特征在于,所述对所述变量字段进行反脱敏处理,得到一成员变量的字面值进一步包括:将所述变量字段作为对照值,利用预先建立的对照关系表,确定所述对照值所对应的值,将该值作为成员变量的字面值。10.如权利要求7所述的密钥的反序列化方法,其特征在于,所述根据所述成员变量的变量类型,将对应的密钥字段进行反转换,得到成员变量对应的变量值进一步包括:若所述成员变量的变量类型为基本数据类型,则利用反序列化库函数将对应的密钥字段反转换得到对应的变量值;若所述成员变量的变量类型为指针类型,则利用反序列化库函数将对应的密钥字段反转换得到指针所指向的内存区域中存储的变量值。11.如权利要求7所述的密钥的反序列化方法,其特征在于,所述获取按照指定序号排序的所有键值对进一步包括:由多个服务器中选取设定数目个服务器;由选取的服务器中取一个集合;其中取得的任意两个集合不相同,任一集合中包括至少一个按照指定序号排序的键值对,取得的所有集合中总计包括所有按照指定序号排序的键值对。12.如权利要求11所述的密钥的反序列化方法,其特征在于,所述多个服务器包括一个主服务器和多个从服务器;所述由多个服务器中选取设定数目个服务器进一步包括:由多个从服务器中选取设定数目个服务器。13.一种密钥的序列化装置,其特征在于,包括:
结构体生成模块,用于根据密钥结构体模型,生成密钥结构体,所述密钥结构体包括多个按照确定序号排列的成员变量;变量值生成模块,用于利用随机数发生器生成多个成员变量分别对应的变量值;密钥字段生成模块,用于根据所述成员变量的变量类型,将与所述成员变量对应的变量值进行相应类型的转换,得到所述成员变量对应的密钥字段;变量字段生成模块,用于对成员变量的字面值进行脱敏处理,得到变量字段,其中所述成员变量的字面值用于表征成员变量的变量类型;混淆处理模块,用于将任一变量字段以及与该变量字段对应的密钥字段进行混淆处理,得到一指定序号的键值对,其中键对应该变量字段,值对应该密钥字段;生成模块,用于按照指定序号将所有键值对排序后得到序列化后的密钥。14.一种密钥的反序列化装置,其特征在于,包括:结构体生成模块,用于根据密钥结构体模型,生成初始密钥结构体;键值对生成模块,用于获取按照指定序号排序的所有键值对,其中键对应一变量字段,值对应一密钥字段;反混淆模块,用于根据键值对的指定序号对任一键值对进行反混淆处理,得到按照确定序号排列的变量字段以及与该变量字段对应的密钥字段;反脱敏模块,用于对所述变量字段进行反脱敏处理,得到一成员变量的字面值;类型确定模块,用于根据所述成员变量的字面值确定所述成员变量的变量类型;反转换模块,用于根据所述成员变量的变量类型,将对应的密钥字段进行反转换,得到成员变量对应的变量值;密钥生成模块,用于根据所述成员变量对应的变量值,以及所述初始密钥结构体,得到密钥结构体。15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12任一所述方法。16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至12任一所述方法。17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至12任一所述方法。

技术总结


本发明公开了一种密钥的序列化方法、反序列化方法和装置,其中序列化方法包括:根据密钥结构体模型,生成密钥结构体,密钥结构体包括多个按照确定序号排列的成员变量;利用随机数发生器生成多个成员变量分别对应的变量值;根据成员变量的变量类型,将与成员变量对应的变量值进行相应类型的转换,得到成员变量对应的密钥字段;对成员变量的字面值进行脱敏处理,得到变量字段,其中成员变量的字面值用于表征成员变量的变量类型;将任一变量字段以及与该变量字段对应的密钥字段进行混淆处理,得到一指定序号的键值对,其中键对应该变量字段,值对应该密钥字段;按照指定序号将所有键值对排序后得到序列化后的密钥。本发明可以提高密钥的安全性。高密钥的安全性。高密钥的安全性。


技术研发人员:

王馨艺

受保护的技术使用者:

中国银行股份有限公司

技术研发日:

2022.09.08

技术公布日:

2023/1/16


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-79755-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-01-26 14:04:22

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论