密码确定方法、密码确定装置、终端及存储介质与流程

文档序号:30311698发布日期:2022-06-05 13:54阅读:154来源:国知局
密码确定方法、密码确定装置、终端及存储介质与流程

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.在一些实施例中,所述键盘数据模型,包括:
32.键盘数据元素,一个所述键盘数据元素,用于描述一个按键的相邻按键。
33.在一些实施例中,一个所述键盘数据元素包括:
34.一个按键在第一方向上的两个相邻按键;
35.一个按键在第二方向上的两个相邻按键,所述第二方向垂直于所述第一方向;
36.一个按键在所述第三方向上的两个相邻按键;所述第三方向为所述第一方向和第二方向的中间方向;
37.一个按键在所述第四方向上的两个相邻按键,其中,所述第四方向垂直于所述第三方向。
38.在一些实施例中,所述预设键盘为:
39.所述全键盘中按键按照按键在全键盘中的原始顺序,在所述第一方向上和所述第二方向上对齐后,形成矩形阵列后的矩形阵列键盘。
40.另一方面,本公开还提供一种密码确定装置,包括:
41.第一处理单元,用于获取输入字符串;
42.第二处理单元,用于基于预设键盘内的按键之间相邻位置关系构建的键盘数据模
型,确定所述输入字符串的各个子字符串中是否包括连续字符串;其中,所述子字符串具体为所述输入字符串中的连续字符片段,所述连续字符串内包含的任意两个相邻字符均为预设键盘上相邻两个按键的输入;
43.第三处理单元,用于若确定所述输入字符串的各个子字符串中包括连续字符串,则根据为连续字符串的各个子字符串的长度,确定所述输入字符串是否能够作为密码。
44.在一些实施例中,所述第三处理单元,用于根据为连续字符串的各个子字符串的长度,确定所述输入字符串是否能够作为密码,具体包括:
45.所述第三处理单元,用于若所述为连续字符串的各个子字符串中,至少一个所述子字符串的长度大于或等于预设长度,则确定所述输入字符串不能作为密码;或
46.若所述为连续字符串的各个子字符串的长度均小于所述预设长度,则确定所述输入字符串能够作为密码。
47.在一些实施例中,所述第三处理单元还用于若确定所述输入字符串的各个子字符串中不包括连续字符串,则确定所述输入字符串能够作为密码。
48.又一方面,本公开还提供一种终端。
49.本公开实施例提供的终端,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行上述实施例提供的密码确定方法的步骤。
50.再一方面,本公开还提供一种计算机可读存储介质。
51.本公开实施例提供的计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现上述实施例提供的密码确定方法的步骤。
52.本公开实施例通过基于预设键盘内的按键之间相邻位置关系构建的键盘数据模型,确定输入字符串包含的子字符串中是否有连续字符串;其中,连续字符串内包含的任意两个相邻字符均为预设键盘上相邻两个按键的输入。当输入字符串的各个子字符串中包括连续字符串时,根据是连续字符串的子字符串的长度,确定输入字符串是否能够作为密码。由于相同字符串长度的输入密码中,是连续字符串的子字符串的长度越小,输入密码的安全程度相对越高。因此,采用基于预设键盘内的按键之间相邻位置关系构建的键盘数据模型,来确定输入字符串包含的子字符串中是否有任意两个相邻字符均为预设键盘上相邻两个按键的输入的连续字符串,以对输入字符串中相邻字符进行验证。同时采用字符串长度比较,作为输入字符串是否能够作为密码的判断依据。如此有利于避免输入字符串中出现过多连续性字符,从而提升密码安全性,增加密码被暴力破解的难度,降低密码被暴力破解的概率。
附图说明
53.图1是根据一示例性实施例示出的密码确定方法流程图;
54.图2是根据一示例性实施例示出的键盘数据模型图;
55.图3是根据一示例性实施例示出的密码确定方法整体流程图一;
56.图4是根据一示例性实施例示出的密码确定方法整体流程图二;
57.图5是根据一示例性实施例示出的输入字符串输入检查示意图;
58.图6是根据一示例性实施例示出的密码确定装置结构示意图;
59.图7是根据一示例性实施例示出的终端结构示意图。
具体实施方式
60.以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
61.密码安全策略是对密码的安全而定制的一套规则,合理的安全策略可以降低密码被暴力破解的概率,提高系统的安全度。通过全键盘进行密码输入在互联网中应用普遍。全键盘即第一行开头6个字母是q、w、e、r、t、y的键盘布局,也称之为qwerty柯蒂键盘。在全键盘进行密码输入时,相邻按键输入形成具有相邻字符的密码容易被暴力破解,而输入密码中任两个相邻字符均不是相邻按键输入的密码被暴力破解的概率相对较小。例如qwer、tgbnhy等均容易被暴力破解。这些字符串作为密码是非常不安全的。qicwkz、oxjwl相对而言,更为安全。
62.据此,为了提高输入密码的安全性,本公开提供一种密码确定方法。图1是根据一示例性实施例示出的密码确定方法流程图。如图1所示,该密码确定方法包括:
63.步骤10、获取输入字符串;
64.步骤11、基于预设键盘内的按键之间相邻位置关系构建的键盘数据模型,确定所述输入字符串的各个子字符串中是否包括连续字符串;其中,所述子字符串具体为所述输入字符串中的连续字符片段,所述连续字符串内包含的任意两个相邻字符均为预设键盘上相邻两个按键的输入;
65.步骤12、若确定所述输入字符串的各个子字符串中包括连续字符串,则根据为连续字符串的各个子字符串的长度,确定所述输入字符串是否能够作为密码。
66.在本示例性实施例中,输入字符串可以是实体键盘输入,也可以是虚拟键盘输入。例如,输入字符串是基于互联网网页中的输入框内检测的。例如,图5中的文本输入框内输入的内容。其中,图5是根据一示例性实施例示出的输入字符串输入检查示意图。
67.在本示例性实施例中,子字符串为输入字符串中的连续字符片段。例如输入字符串为asdfgh,则子字符串可包括as、asd、sdfgh、fgh等连续字符片段。
68.在本示例性实施例中,采用基于预设键盘内的按键之间相邻位置关系构建的键盘数据模型,来确定输入字符串包含的子字符串中是否有任意两个相邻字符均为预设键盘上相邻两个按键的输入的连续字符串,以对输入字符串中相邻字符进行验证。同时采用字符串长度比较,作为输入字符串是否能够作为密码的判断依据。如此有利于避免输入字符串中出现过多连续性字符,从而提升密码安全性,增加密码被暴力破解的难度,降低密码被暴力破解的概率。
69.在本示例性实施例中,输入字符串包括只有字母、只有数字或字母、数字、特殊字符均有的字符串。按键之间相邻位置关系,包括输入字母的按键之间的相邻位置关系、输入数字或特殊字符(例如,@、#等)的按键之间的相邻位置关系以及输入字母和输入数字(或特殊字符)的按键之间的相邻位置关系。
70.在本示例性实施例中,在确定为连续字符串的子字符串时,包括任意一个子字符串均不是连续字符串、只有一个子字符串是连续字符串以及有多个子字符串是连续字符串的情况。当只有一个子字符串是连续字符串,或有多个子字符串是连续字符串时,根据为连续字符串的子字符串的长度,确定输入字符串是否能够作为密码,包括:
71.当只有一个子字符串是连续字符串,则根据该子字符串的长度,确定输入字符串是否能够作为密码;
72.当有多个子字符串是连续字符串时,则根据所有子字符串的长度,确定输入字符串是否能够作为密码。
73.在一些实施例中,所述根据为连续字符串的各个子字符串的长度,确定所述输入字符串是否能够作为密码,包括:
74.若所述为连续字符串的各个子字符串中,至少一个所述子字符串的长度大于或等于预设长度,则确定所述输入字符串不能作为密码;或,
75.若所述为连续字符串的各个子字符串的长度均小于所述预设长度,则确定所述输入字符串能够作为密码。
76.在本示例性实施例中,预设长度为验证输入密码时设置的用于比较输入字符串中连续字符串长度的判断标准。当输入字符串中为连续字符串的各子字符串的长度均小于预设长度时,说明该输入字符串的安全程度相对较高,该输入字符串能够作为密码使用。当输入字符串中为连续字符串的至少一个子字符串的长度大于或等于预设长度时,说明该输入字符串如果作为密码,其被破解的概率较高,所以该输入字符串不适合最为密码使用。
77.例如,设置预设长度为3,输入字符串为qwhlc1。输入字符串中为连续字符串的子字符串为qw。qw的长度为2小于3,则qwhlc1可以作为预设长度为3条件下的密码使用。当输入字符串为qwerkl。输入字符串中为连续字符串的子字符串为qwer和kl。qwer的长度为4大于3,则qwerkl不可以作为预设长度为3条件下的密码使用。如果设置预设长度为5,此时qwerkl可以作为预设长度为5条件下的密码使用。
78.在一些实施例中,所述密码确定方法,还包括:
79.若确定所述输入字符串的各个子字符串中不包括连续字符串,则确定所述输入字符串能够作为密码。
80.在本示例性实施例中,当输入字符串中包含的所有子字符串均不是连续字符串,即输入字符串的所有子字符串中不包括连续字符串,则该输入字符串可以作为密码使用。即输入字符串中任意相邻的两个字符均不是预设键盘上相邻两个按键的输入。此时,该输入字符串可以直接作为密码使用,不需要进行字符串长度比较。例如,输入字符串为qrjcl1时,该输入字符串的任意相邻的两个字符均不是预设键盘上相邻两个按键的输入,则该输入字符串可以直接作为密码使用。
81.在一些实施例中,所述密码确定方法,还包括:
82.若确定所述输入字符串不能作为密码,则输出提示信息;
83.其中,所述提示信息包括以下至少之一:
84.错误提示,指示所述输入字符串不能作为密码;
85.错误原因,指示所述输入字符串不能作为密码的原因;
86.错误修正方式,指示调整所述输入字符串的修正方式。
87.在本示例性实施例中,当输入字符串中连续字符串的长度大于或等于预设长度导致其不能作为密码使用时,系统会自动反馈提示信息,包括反馈“error”的错误提示、反馈“连续字符输入长度过长,容易被破解”等错误原因以及反馈需要修改的连续字符串等,从而使得用户可根据提示进行密码更改,提高密码安全性。
88.在一些实施例中,所述密码确定方法,还包括:
89.若所述输入字符串能作为所述密码,输出提示信息;
90.其中,所述提示信息包括:
91.正确提示,指示所述输入字符串能作为密码和/或指示输入字符串能作为密码的安全等级。例如,当输入字符串qdykc6作为密码通过验证时,系统可反馈“true”的提示,并显示对应的安全等级为中级。当输入字符串af@l4#x作为密码通过验证时,系统可反馈“true”的提示,并显示对应的安全等级为高级等。
92.在一些实施例中,所述密码确定方法,包括:
93.确定验证模式,
94.所述基于预设键盘内的按键之间相邻位置关系构建的键盘数据模型,确定所述输入字符串的各个子字符串中是否包括连续字符串,包括:
95.在所述验证模式为第一模式时,在忽略所述输入字符串中大写字符和小写字符的差异的情况下,根据所述输入字符串中字符的组合顺序及预设键盘内的按键之间相邻位置关系构建的键盘数据模型,确定所述输入字符串的各个子字符串中是否包括连续字符串。
96.在本示例性实施例中,在验证模式为第一模式时,忽略所述输入字符串中大写字符和小写字符的差异具体指不对字母输入的大小写做区分,即键盘中相邻按键输入的字母中一个大写字母和一个小写字母,也被认定是相邻按键输入的相邻字符。这种情况同样作为连续字符串处理。例如,qwe被认定为连续字符串,同样qwe以及qwe均被认定为连续字符串。即q和q被认定为相同的字符,在键盘中被认定为同一按键的输入。
97.在一些实施例中,
98.所述基于预设键盘内的按键之间相邻位置关系构建的键盘数据模型,确定所述输入字符串的各个子字符串中是否包括连续字符串,包括:
99.在所述验证模式为第二模式时,根据所述输入字符串中字符的组合顺序、字符的大小写及预设键盘内的按键之间相邻位置关系构建的键盘数据模型,确定所述输入字符串的各个子字符串中是否包括连续字符串。
100.在本示例性实施例中,在验证模式为第二模式时,键盘数据模型根据输入字符串中字符的组合顺序、字符的大小写及预设键盘内的按键之间相邻位置关系构建而成,其对输入字母的大小写做区分。即q和q不被认定为相同的字符,在键盘中也不被认定为同一按键的输入。
101.在一些实施例中,
102.所述在所述验证模式为第二模式时,根据所述输入字符串中字符的组合顺序、字符的大小写及预设键盘内的按键之间相邻位置关系构建的键盘数据模型,确定所述输入字符串的各个子字符串中是否包括连续字符串,包括:
103.在所述第二验证模式下,在所述输入字符串中相邻两个字符一个为大写字符且另一个为小写字符时,在一个为大写字符且另一个为小写字符的相邻两个字符之间插入大小
写转换字符,形成转换后的待验证字符串;
104.根据所述键盘数据模型,确定转换后的待验证字符串中的子字符串中是否包括连续字符串。
105.在本示例性实施例中,所述转换字符可为任意特定符号的字符,通过转换字符的插入,可以使得不同大小且对应键盘连续分布按键的字符,被认定为不构成连续字符串。例如,该转换字符包括但不限于:“shift”。
106.在本示例性实施例中,在所述验证模式为第二模式时,需要对字母输入的大小写做区分,即键盘中相邻按键输入的字母中一个大写字母和一个小写字母,不被认定是相邻按键输入的相邻字符。这种情况不被作为连续字符串处理。例如,qwe和qwe被认定为连续字符串,但qwe、qwe以及qwe、qwe均不被认定为3位字符连续的连续字符串。因为在上述字符串中qw、qw、we、we等均不被认定为相邻按键的输入。即一个大写字母和一个小写字母即使是相邻字符,但在键盘输入时需要加入“shift”键切换,所以不被认定是相邻按键的输入。即一个大写字母和一个小写字母不被认定为连续字符串。
107.在一些实施例中,所述在所述验证模式为第二模式时,根据所述输入字符串中字符的组合顺序、字符的大小写及预设键盘内的按键之间相邻位置关系构建的键盘数据模型,确定所述输入字符串中的子字符串是否为连续字符串,包括:
108.在所述第二验证模式下,在所述输入字符串中相邻两个字符一个为大写字符且另一个为小写字符时,确定一个为大写字符且一个为小写字符的两个相邻字符所对应的子字符串不连续。即键盘中相邻按键输入的字母中一个大写字母和一个小写字母,不被认定是相邻按键输入的相邻字符。例如,qwe、qwe以及qwe、qwe均不被认定为3位字符连续的连续字符串。
109.在一些实施例中,所述键盘数据模型,包括:
110.键盘数据元素,一个所述键盘数据元素,用于描述一个按键的相邻按键。
111.在本示例性实施例中,在键盘数据模型中包含了多个建立好的键盘数据元素。一个键盘数据元素具体可以是描述一个按键的相邻按键。例如按键w和与按键w相邻的q、e、2、s等。
112.在本示例性实施例中,键盘数据模型和键盘数据元素可通过map结构来存储。
113.map结构是一种字典数据结构。字典结构是用来存储不重复key的hash结构,采用键值对的形式来存储数据。map结构类似于对象,是键值对的集合。其中,“key”的范围不仅限于字符串,各种类型的值都可以当做key。map结构是一种更加完善的hash结构。
114.在一些实施例中,一个所述键盘数据元素包括:
115.一个按键在第一方向上的两个相邻按键;
116.一个按键在第二方向上的两个相邻按键,所述第二方向垂直于所述第一方向;
117.一个按键在所述第三方向上的两个相邻按键;所述第三方向为所述第一方向和第二方向的中间方向;
118.一个按键在所述第四方向上的两个相邻按键,其中,所述第四方向垂直于所述第三方向。
119.在本示例性实施例中,第一方向可以是水平方向、第二方向可以是竖直方向、第三方向是水平方向和竖直方向的中间方向以及第四方向是与第三方向的垂直方向。例如,按
键d,在第一方向上的两个按键可以为s和f,在第二方向上的两个按键可以为e和c,在第三方向上的两个按键可以为r和x,在第四方向上的两个按键可以为w和v。
120.在一些实施例中,所述预设键盘为:
121.所述全键盘中按键按照按键在全键盘中的原始顺序,在所述第一方向上和所述第二方向上对齐后,形成矩形阵列后的矩形阵列键盘。
122.在本示例性实施例中,图2是根据一示例性实施例示出的键盘数据模型图。如图2所示,可将传统意义上的全键盘序列中的各行字符左端对齐,在右端补入空位,形成在水平和竖直方向均对齐的矩形阵列键盘。在图2所示的矩形阵列键盘中,相邻按键分布可以包括水平方向(即第一方向)、竖直方向(即第二方向)、水平方向和竖直方向的中间方向(即第三方向)以及与中间方向(即第三方向)的垂直方向(即第四方向)。
123.本公开实施例提供的密码确定方法完整验证流程如下。图3是根据一示例性实施例示出的密码确定方法整体流程图一。如图3所示,密码确定流程包括:
124.(1)基于预设键盘内的按键之间相邻位置关系构建键盘数据模型。
125.(2)设置预设长度参数以及确定验证模式。
126.(3)读取用户输入密码(例如,输入字符串)。
127.(4)遍历输入字符串判断。
128.(5)判断字符串遍历是否结束。
129.(6)字符串遍历结束,则判断输入字符串的子字符串中是否有连续字符串;有,则比较为连续字符串的子字符串的长度与预设长度的大小;否则,确定输入子字符串能够作为密码。
130.(7)比较为连续字符串的子字符串的长度与预设长度的大小;若输入字符串中为连续字符串的各子字符串的长度均小于预设长度,确定输入字符串能够作为密码;若输入字符串中为连续字符串的至少一个子字符串的长度大于或等于预设长度,则确定输入字符串不能作为密码。
131.图4是根据一示例性实施例示出的密码确定方法整体流程图二。如图4所示,密码确定流程还包括:
132.(1)引入检查器代码库。
133.(2)初始化检查器,定义检查规则。
134.(3)定义文本输入框。
135.(4)定义按钮绑定点击事件,用于触发检查。
136.(5)用户输入校验文本,并点击按钮触发检查。
137.(6)检查器检查输入密码是否符合规则;是,则确定输入字符串能够作为密码;否,则输出提示信息,以提示用户修改直至确定输入字符串能够作为密码。
138.本公开实施例提供密码确定方法适用于多种应用场景包括互联网前后端分离时的前端应用。键盘数据模型在前端建立,直接在前端完成密码确定操作。在离线环境(断网环境)下,依然可以进行密码确定操作,不需要服务器端支持,不需要前端调用后端服务,更不需要后端服务器通过网络调取前端客户输入的密码,从而提高系统安全性。前端即网站前台部分,运行在pc端,移动端等浏览器上展现给用户浏览的网页。前后端分离是指通过代理服务器的方式(nginx+tomcat或者nodejs)有效的进行解耦,跟传统的架构相比,前后端
分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务大侠坚实的基础。这个步骤是系统架构进化的必经之路。离线环境下密码安全策略验证指的是,在浏览器端使用javascript语言实现的识别字符串是否全部由全键盘上相邻的按键组成。使用场景一般是在要求比较高的密码安全策略中,校验用户设定的密码是否符合这一安全策略。
139.在本示例性实施例中,
140.第一步:在页面中引入代码,可以通过npm方式安装:
141.npm install keyboard-sequence-checker
142.也可以通过cdn引入
143.《script src=”://cdn/keyboard-sequence-checker”》《/script》
144.第二步:初始化:
145.给全局变量window上定义一个keyboardsequencechecker属性,通过new方式实例化对象,构造函数需要三个参数:
146.识别的字符串长度,要求大于等于2;
147.定义何为连续字符,有两种模式:1、行和列相邻;2、任意方向相邻;以及是否支持shift+,即是否忽略大小和支持特殊字符。
148.在false的情况下,qwe等同于qwe;在true的情况下则认为前者不连续。
149.串的长度为3个字符的情况。
150.第三步:用户输入:
151.用html标签定义一个输入框元素,再定义一个按钮元素,给按钮元素绑定点击事件处理函数,函数内容为读取输入框的值,然后传入keyboard sequence checker实例对象的check方法中。
152.第四步:输出结果:
153.keyboard sequence checker的check方法会返回匹配到的字符串,或返回“error”。
154.另一方面,本公开还提供一种密码确定装置。图6是根据一示例性实施例示出的密码确定装置结构示意图。该密码确定装置,包括:
155.第一处理单元61,用于获取输入字符串;
156.第二处理单元62,用于基于预设键盘内的按键之间相邻位置关系构建的键盘数据模型,确定所述输入字符串的各个子字符串中是否包括连续字符串;其中,所述子字符串具体为所述输入字符串中的连续字符片段,所述连续字符串内包含的任意两个相邻字符均为预设键盘上相邻两个按键的输入;
157.第三处理单元63,用于若确定所述输入字符串的各个子字符串中包括连续字符串,则根据为连续字符串的各个子字符串的长度,确定所述输入字符串是否能够作为密码。
158.在本示例性实施例中,采用基于预设键盘内的按键之间相邻位置关系构建的键盘数据模型,来确定输入字符串包含的子字符串中是否有任意两个相邻字符均为预设键盘上相邻两个按键的输入的连续字符串,以对输入字符串中相邻字符进行验证。同时采用字符串长度比较,作为输入字符串是否能够作为密码的判断依据。如此有利于避免输入字符串中出现过多连续性字符,从而提升密码安全性,增加密码被暴力破解的难度,降低密码被暴力破解的概率。
159.在本示例性实施例中,输入字符串包括只有字母、只有数字或字母、数字、特殊字符均有的字符串。按键之间相邻位置关系,包括输入字母的按键之间的相邻位置关系、输入数字或特殊字符(例如,@、#等)的按键之间的相邻位置关系以及输入字母和输入数字(或特殊字符)的按键之间的相邻位置关系。
160.在本示例性实施例中,在确定为连续字符串的子字符串时,包括任意一个子字符串均不是连续字符串、只有一个子字符串是连续字符串以及有多个子字符串是连续字符串的情况。当只有一个子字符串是连续字符串,或有多个子字符串是连续字符串时,根据为连续字符串的子字符串的长度,确定输入字符串是否能够作为密码,包括:
161.当只有一个子字符串是连续字符串,则根据该子字符串的长度,确定输入字符串是否能够作为密码;
162.当有多个子字符串是连续字符串时,则根据所有子字符串的长度,确定输入字符串是否能够作为密码。
163.在一些实施例中,所述第三处理单元,用于根据为连续字符串的各个子字符串的长度,确定所述输入字符串是否能够作为密码,具体包括:
164.所述第三处理单元,用于若所述为连续字符串的各个子字符串中,至少一个所述子字符串的长度大于或等于预设长度,则确定所述输入字符串不能作为密码;或
165.若所述为连续字符串的各个子字符串的长度均小于所述预设长度,则确定所述输入字符串能够作为密码。
166.在本示例性实施例中,预设长度为验证输入密码时设置的用于比较输入字符串中连续字符串长度的判断标准。当输入字符串中为连续字符串的各子字符串的长度均小于预设长度时,说明该输入字符串的安全程度相对较高,该输入字符串能够作为密码使用。当输入字符串中为连续字符串的至少一个子字符串的长度大于或等于预设长度时,说明该输入字符串如果作为密码,其被破解的概率较高,所以该输入字符串不适合最为密码使用。
167.例如,设置预设长度为3,输入字符串为qwhlc1。输入字符串中为连续字符串的子字符串为qw。qw的长度为2小于3,则qwhlc1可以作为预设长度为3条件下的密码使用。当输入字符串为qwerkl。输入字符串中为连续字符串的子字符串为qwer和kl。qwer的长度为4大于3,则qwerkl不可以作为预设长度为3条件下的密码使用。如果设置预设长度为5,此时qwerkl可以作为预设长度为5条件下的密码使用。
168.在一些实施例中,所述第三处理单元还用于若确定所述输入字符串的各个子字符串中不包括连续字符串,则确定所述输入字符串能够作为密码。
169.在本示例性实施例中,当输入字符串中包含的所有子字符串均不是连续字符串,则该输入字符串可以作为密码使用。即输入字符串中任意相邻的两个字符均不是预设键盘上相邻两个按键的输入。此时,该输入字符串可以直接作为密码使用,不需要进行字符串长度比较。例如,输入字符串为qrjcl1时,该输入字符串的任意相邻的两个字符均不是预设键盘上相邻两个按键的输入,则该输入字符串可以直接作为密码使用。
170.又一方面,本公开还提供一种终端。
171.图7是根据一示例性实施例示出的终端结构示意图。如图7所示,本公开实施例提供的终端,包括:处理器730和用于存储能够在处理器上运行的计算机程序的存储器720,其中,所述处理器730用于运行所述计算机程序时,执行上述各实施例提供所述方法的步骤。
172.再一方面,本公开还提供一种计算机可读存储介质。
173.本公开实施例提供的计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现上述各实施例提供所述方法的步骤。
174.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
175.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
176.另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
177.在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的方法技术方案。
178.在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的设备技术方案。
179.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
180.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1