1.本发明涉及游戏账号加密技术领域,尤其涉及一种游戏账号密码的客户端安全存储方法及装置。
背景技术:
2.随着网络的普及,云游戏的兴起,玩家用户喜欢在手机上玩各种游戏,网络游戏需要输入帐号,切换不同的游戏就需要输入不同的帐号,这样会导致登录账号不便,且采用本地存储用户游戏账号密码会导致当用户手机遗失的情况下,采用破解apk、网络截包和获取手机本地数据的方式就能获取用户账号密码。
技术实现要素:
3.本发明目的在于,提供一种游戏账号密码的客户端安全存储方法及装置,采用二次加密的方式,以解决云游戏后台被攻破导致玩家账号泄漏的问题。
4.为实现上述目的,本发明实施例提供一种游戏账号密码的客户端安全存储方法,包括以下步骤:
5.根据用户在客户端输入的用户密码,所述客户端从服务端请求用户游戏的唯一token进行第一次加密,生成密文;
6.将所述密文保存至所述客户端;
7.读取所述密文,将所述密文传输至云主机进行第二次加密。
8.优选地,所述步骤在读取所述密文,将所述密文传输至云主机进行第二次加密之后还包括:
9.云主机接收所述密文后,从所述服务端请求用户游戏的唯一token,采用desede对称解密算法获取用户名密码的明文。
10.优选地,所述根据用户在客户端输入的用户密码,所述客户端从服务端请求用户游戏的唯一token进行第一次加密,生成密文,包括:
11.采用游戏id、用户id、和密匙常量拼接获取前24个字符作为动态加密密匙。
12.本发明实施例提供还提供一种游戏账号密码的客户端安全存储装置,包括:
13.第一加密模块,用于根据用户在客户端输入的用户密码,所述客户端从服务端请求用户游戏的唯一token进行第一次加密,生成密文;
14.保存模块,用于将所述密文保存至所述客户端;
15.第二加密模块,用于读取所述密文,将所述密文传输至云主机进行第二次加密。
16.优选地,所述一种游戏账号密码的客户端安全存储装置还包括:解密模块;
17.所述解密模块,用于云主机接收所述密文后,从所述服务端请求用户游戏的唯一token,采用desede对称解密算法获取用户名密码的明文。
18.优选地,所述第一加密模块,还用于采用游戏id、用户id、和密匙常量拼接获取前24个字符作为动态加密密匙。
19.本发明实施例还提供一种计算机终端设备,包括一个或多个处理器和存储器。存储器与所述处理器耦接,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任一实施例所述的游戏账号密码的客户端安全存储方法。
20.本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述任一实施例所述的游戏账号密码的客户端安全存储方法。
21.本发明实施例采用客户端从服务端请求用户加游戏的唯一token进行第一次加密,当用户连接云主机后进行第二次加密,避免了入侵者通过破解apk、网络截包以及查找手机本地数据从而获取用户名密码的问题。
附图说明
22.为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1是本发明某一实施例提供的游戏账号密码的客户端安全存储方法的流程示意图;
24.图2是本发明另一实施例提供的游戏账号密码的客户端安全存储方法的流程示意图;
25.图3是本发明某一实施例提供的游戏账号密码的客户端安全存储装置的结构示意图。
具体实施方式
26.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
28.应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
29.术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
30.术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
31.请参阅图1和图2,本发明实施例提供一种游戏账号密码的客户端安全存储方法,包括:
32.s101、根据用户在客户端输入的用户密码,所述客户端从服务端请求用户游戏的
唯一token进行第一次加密,生成密文。
33.具体的,用户在输入密码后,在落地到数据库之前,先从服务器请求一个唯一用户 游戏的token,经过加密算法,最终将用户名密码的密文落地到数据库,采用游戏id、用户id、和密匙常量拼接获取前24个字符作为动态加密密匙。具体的加密函数如下:
34.加密函数为f(t,c)=encode(sk(t,u,s),iv,c,token);
35.其中,
36.·
t是游戏id;
37.·
c是加密的原文(帐号名、密码);
38.·
u是当前登录的用户id;
39.·
s是密钥后缀字符串常量;
40.·
token是通过服务端请求拿到的;
41.·
sk函数是返回真正的加密密钥,使用游戏id、用户id、密钥常量拼接,取前24个字符作为动态加密密钥;
42.·
encode函数是用desede算法加密;
43.·
iv是desede加密算法的常量因子;
44.f(t,c)生成的密文,保存到本地数据库;帐号密码按一样的处理逻辑。
45.s102、将所述密文保存至所述客户端。
46.具体的,保存数据至数据库的详细步骤如下:
47.使用sqlite保存帐号密码数据,详细为:
48.·
数据表保存了游戏id、加密的帐号、加密的密码;
49.·
表文件指定安全目录保存,并保存为特殊的混淆性名字xxx.jpg;
50.·
表名、字段使用t、n代号表示。
51.s103、读取所述密文,将所述密文传输至云主机进行第二次加密。
52.具体的,读取本地账号列表,账号名解密显示,密码不需要解密,解密账号名时,使用desede对称解密即可。
53.云游戏登录,应用需要传输帐号密码到云游戏服务端,加密传输原文,其中,加密原文获取函数为:
54.f(a,p)=json(a,p);
55.·
a为帐号名已加密字符串;
56.·
p为密码已加密字符串;
57.·
json函数将a和p参数拼装成json,作为加密的原文。
58.传输时加密过程,其中,加密函数为f(n,c)=encode(sk(n,s),iv,c);
59.其中,
60.·
n是游戏服务id;
61.·
u是当前登录的用户id;
62.·
s是密钥后缀字符串常量;
63.·
c是加密的原文;
64.·
sk函数是返回真正的加密密钥,使用游戏服务id、密钥常量拼接,取前24个字符作为动态加密密钥;
65.·
encode函数是用desede算法加密;
66.·
iv是desede加密算法的常量因子;
67.f(n,c)生成的密文,发送到服务端。
68.云主机获取帐号名密码,需要两次解密过程,步骤如下:
69.1.采用desede对称解密获取原文json;
70.2.从json解析出帐号名密文和密码密文;
71.3.先通过服务端接口拿到token,然后采用desede对称解密获取原文,帐号密码按一样的处理逻辑。
72.在一实施例中,云主机接收所述密文后,从所述服务端请求用户游戏的唯一token,采用desede对称解密算法获取用户名密码的明文。
73.具体的,第一步,客户端向服务端请求的token,在客户端的所有生命周期中,只会在客户端输入用户名密码的第一次能取到,如果中途客户端修改密码,那会生成一串新的token,客户端是拿不到的,所以即使客户端发生了入侵,入侵者在拿不到token的情况下,即使知道密文和加密算法,也无法拿到用户名密码的明文。在第一步之后,在客户端传输用户名密码到云主机的过程中,通过与云主机约定的算法,对token加密后的密文进行二次加密,云主机拿到二次加密的密文后,先进行第一次解密,然后从后端请求token,进行二次解密,解密后得到用户名密码的明文,并输入到输入框中,用户可以登录。
74.账号密码解密之后,请求登录游戏,ui刷新进入游戏。
75.本发明实施例为解决入侵者通过破解apk、网络截包和获取手机本地数据,来得知用户账号,那么入侵者就有可能拿到保存在客户端本地的用户名密码。本发明采用二次加密的方式,首先通过客户端从服务端请求用户加游戏的唯一token进行加密,加密后将用户名密码的密文保存在客户端本地,用户在连接云主机之后,点击保存的用户名密码项,准备将密文传输至云主机,传输前对密文进行二次加密,云主机在接收到密文后,从服务端请求用户加游戏的唯一token,通过解密算法进行解密,本发明可以让用户在玩云游戏的时候,既没有账号信息这些敏感数据上传到云游戏平台的担忧,避免了云游戏后台被攻破导致千万玩家账号泄露的风险,又能安全的保存用户的账号信息,让玩家能更放心的享受云游戏带来的便利。
76.请参阅图3,本发明实施例提供一种游戏账号密码的客户端安全存储装置,包括:
77.第一加密模块11,用于根据用户在客户端输入的用户密码,所述客户端从服务端请求用户游戏的唯一token进行第一次加密,生成密文;
78.保存模块12,用于将所述密文保存至所述客户端;
79.第二加密模块13,用于读取所述密文,将所述密文传输至云主机进行第二次加密。
80.关于游戏账号密码的客户端安全存储装置的具体限定可以参见上文中对于的限定,在此不再赘述。上述游戏账号密码的客户端安全存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
81.本发明实施例提供一种计算机终端设备,包括一个或多个处理器和存储器。存储器与所述处理器耦接,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多
个处理器执行,使得所述一个或多个处理器实现如上述任意一个实施例中的游戏账号密码的客户端安全存储方法。
82.处理器用于控制该计算机终端设备的整体操作,以完成上述的游戏账号密码的客户端安全存储方法的全部或部分步骤。存储器用于存储各种类型的数据以支持在该计算机终端设备的操作,这些数据例如可以包括用于在该计算机终端设备上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read
‑
only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read
‑
only memory,简称eprom),可编程只读存储器(programmable read
‑
only memory,简称prom),只读存储器(read
‑
only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
83.在一示例性实施例中,计算机终端设备可以被一个或多个应用专用集成电路(application specific 1ntegrated circuit,简称as1c)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的游戏账号密码的客户端安全存储方法,并达到如上述方法一致的技术效果。
84.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述任意一个实施例中的游戏账号密码的客户端安全存储方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器,上述程序指令可由计算机终端设备的处理器执行以完成上述的游戏账号密码的客户端安全存储方法,并达到如上述方法一致的技术效果。
85.以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
技术特征:
1.一种游戏账号密码的客户端安全存储方法,其特征在于,包括以下步骤:根据用户在客户端输入的用户密码,所述客户端从服务端请求用户游戏的唯一token进行第一次加密,生成密文;将所述密文保存至所述客户端;读取所述密文,将所述密文传输至云主机进行第二次加密。2.根据权利要求1所述的游戏账号密码的客户端安全存储方法,其特征在于,所述步骤在读取所述密文,将所述密文传输至云主机进行第二次加密之后还包括:云主机接收所述密文后,从所述服务端请求用户游戏的唯一token,采用desede对称解密算法获取用户名密码的明文。3.根据权利要求1所述的游戏账号密码的客户端安全存储方法,其特征在于,所述根据用户在客户端输入的用户密码,所述客户端从服务端请求用户游戏的唯一token进行第一次加密,生成密文,包括:采用游戏id、用户id、和密匙常量拼接获取前24个字符作为动态加密密匙。4.一种游戏账号密码的客户端安全存储装置,其特征在于,包括:第一加密模块,用于根据用户在客户端输入的用户密码,所述客户端从服务端请求用户游戏的唯一token进行第一次加密,生成密文;保存模块,用于将所述密文保存至所述客户端;第二加密模块,用于读取所述密文,将所述密文传输至云主机进行第二次加密。5.根据权利要求4所述的游戏账号密码的客户端安全存储装置,其特征在于,还包括:解密模块;所述解密模块,用于云主机接收所述密文后,从所述服务端请求用户游戏的唯一token,采用desede对称解密算法获取用户名密码的明文。6.根据权利要求5所述的游戏账号密码的客户端安全存储装置,其特征在于,所述第一加密模块,还用于采用游戏id、用户id、和密匙常量拼接获取前24个字符作为动态加密密匙。7.一种计算机终端设备,其特征在于,包括:一个或多个处理器;存储器,与所述处理器耦接,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至3任一项所述的游戏账号密码的客户端安全存储方法。8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的游戏账号密码的客户端安全存储方法。
技术总结
本发明公开了一种游戏账号密码的客户端安全存储方法及装置,所述方法包括以下步骤:根据用户在客户端输入的用户密码,所述客户端从服务端请求用户游戏的唯一token进行第一次加密,生成密文;将所述密文保存至所述客户端;读取所述密文,将所述密文传输至云主机进行第二次加密。本发明采用二次加密的方式,避免了入侵者通过破解apk、网络截包和查找手机本地数据来获取用户名密码。数据来获取用户名密码。数据来获取用户名密码。
技术研发人员:舒伟 郭曼丽 陈寅乐 邓宗荣 黄鹏飞
受保护的技术使用者:广州点云科技有限公司
技术研发日:2021.02.24
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-15647.html