本发明专利技术涉及密码加解密领域,具体涉及一种基于键盘规则的密码遍历算法,步骤1:获取键盘上的字符并根据键盘字符规则建立密码集合,步骤2:设定密码集合的暴力遍历规则,步骤3:将暴力遍历规则和密码集合作为遍历算法的数据源,使用遍历算法对密码集合中的字符进行构造生成最终的遍历密码。本方案针对键盘规则的特征,设计了相应的遍历算法,可以实现对不同键盘顺序、不同起始位置、不同长度的密码进行遍历。
【技术实现步骤摘要】
一种基于键盘规则的密码遍历方法
本专利技术涉及密码加解密领域,具体涉及一种基于键盘规则的密码遍历方法。
技术介绍
暴力遍历和字典遍历是目前密码恢复中最常用的两种遍历方式。暴力遍历就是对用户制定的规则内的所有密码进行遍历,字典遍历则是对字典文件中的密码进行遍历。暴力方式往往需要较多的规则来覆盖尽可能大的密码空间以提高密码恢复的成功率,但密码空间太大将造成遍历时间倍增,甚至需要成百上千年的时间,使密码恢复失去意义。字典遍历方式的成功率往往受限于字典中的密码数,由于字典的密码数一般不会太多,因此可以短时间内完成密码的遍历,但一般只能恢复出常用的密码,对于一些复杂密码无能为力。如何在有效的时间内恢复出尽可能复杂的密码是当前的主要研究方向。目前,针对暴力方式,研究主要集中在通过各种硬件加速、算法优化、分布式技术来提高遍历的速度,以此来缩短遍历的时间。但是通过提高遍历速度的方法只能使遍历时间线性减小,而密码长度增长、密码字符集增大却使遍历时间几何级数增大;而针对字典遍历,研究主要集中在对字典的收集方面,收集的密码数比较有限。专利《复杂密码快速遍历算法及装置》和《一种基于字典的复杂密码遍历算法》在暴力遍历和字典遍历的基础上,设计了针对具有分段特征的密码遍历算法。但在常用的密码中,有一种密码没有分段特征,无法用以上两个专利的算法来实现密码遍历,而这种密码又具有很明显的特征,那就是符合键盘规则的密码。键盘规则是指按照键盘上一定的按键顺序构成密码的规则,键盘规则可以根据不同的按键顺序构成密码。例如“1q2w3e4r5t6y7u8i9o0p”,是按照键盘上数字和字母两排交叉输出,而实际使用的密码段可能是“1q2w”、“1q2w3e4r”、“4r5t6y”等各种长度。普通的暴力遍历算法,只能代入所有可能的键盘字符进行全排列组合,即使8位以内的密码在短时间内都无法完成遍历。由于其无法使用键盘排列顺序这个特征,使其遍历的密码绝大部分是无效的。
技术实现思路
解决上述技术问题,本专利技术提供了一种基于键盘规则的密码遍历方法,针对键盘规则的特征,设计了相应的遍历算法,可以实现对不同键盘顺序、不同起始位置、不同长度的密码进行遍历。为了达到上述目的,本专利技术所采用的技术方案是,一种基于键盘规则的密码遍历方法,包括以下步骤:步骤1:获取键盘上的字符并根据键盘字符规则建立密码集合,步骤2:设定密码集合的暴力遍历规则,步骤3:将暴力遍历规则和密码集合作为遍历算法的数据源,使用遍历算法对密码集合中的字符进行构造生成最终的遍历密码。进一步的,所述密码集合包括第一遍历字符表和第二遍历字符表,该第一和第二遍历字符表均为4行13列,第一遍历字符表依据键盘字符规则存储单纯按下按键后输入的字符,第二遍历字符表依据字符键盘规则存储按住“Shift”按键后输入的字符,且根据键盘字符规则,所述第一和第二遍历字符表中的第1行均顶格保存,第2至第4行均空1格开始保存。更进一步的,所述步骤2中,第一遍历字符表和第二遍历字符表暴力遍历规则包括:规则1:不跨行遍历规则,锁定字符遍历表中的某行以从左往右、从右往左、从左往右再返回、从右往左再返回规则遍历,规则2:从上往下遍历规则,锁定字符遍历表中的某列以从上往下,从下往上,从上往下再返回,从下往上再返回规则遍历,规则3:跨行遍历规则,锁定字符遍历表中的某几行以各行同方向、各行反方向规则遍历,规则4:跨列遍历规则,锁定字符遍历表中的某几列以各列同方向、各列反方向的规则遍历。本专利技术通过采用上述技术方案,与现有技术相比,具有如下优点:本方案针对键盘规则的特征,设计了相应的遍历算法,可以实现对不同键盘顺序、不同起始位置、不同长度的密码进行遍历。附图说明图1是本专利技术的实施例初始时A与B均指向第1行第1列的示意图。图2是本专利技术的实施例B往右移1位的示意图。图3是本专利技术的实施例A往右移1位的示意图。图4是本专利技术的实施例A与B重合,A返回第1位,B右移1位的示意图。图5是本专利技术的实施例A往右移1位的示意图。图6是本专利技术的实施例A和B都指向最后一列的示意图。图7是本专利技术的实施例A和B都改变移动方向,B向左移一位的示意图。图8是本专利技术的实施例A左移一位的示意图。图9是本专利技术的实施例A与B重合,A返回最后一列,B左移一位的示意图。具体实施方式作为一个具体的实施例,为了达到上述目的,本专利技术所采用的技术方案是,一种基于键盘规则的密码遍历方法,包括以下步骤:步骤1:获取键盘上的字符并根据键盘字符规则建立密码集合,所述密码集合包括第一遍历字符表和第二遍历字符表,如下所示,表1为第一遍历字符表,表2为第二遍历字符表,`1234567890-=qwertyuiop[]asdfghjkl;‘\zxcvbnm,./表1不按Shitf键所有字符~!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:“|ZXCVBNM<>?表2按Shitf键所有字符该第一和第二遍历字符表均为4行13列,第一遍历字符表依据键盘字符规则存储单纯按下按键后输入的字符,第二遍历字符表依据字符键盘规则存储按住“Shift”按键后输入的字符,且根据键盘字符规则,所述第一和第二遍历字符表中的第1行均顶格保存,第2至第4行均空1格开始保存,步骤2:设定密码集合的暴力遍历规则,也即第一遍历字符表和第二遍历字符表暴力遍历规则包括:规则1:不跨行遍历规则,锁定字符遍历表中的某行以从左往右、从右往左、从左往右再返回、从右往左再返回规则遍历,规则2:从上往下遍历规则,锁定字符遍历表中的某列以从上往下,从下往上,从上往下再返回,从下往上再返回规则遍历,规则3:跨行遍历规则,锁定字符遍历表中的某几行以各行同方向、各行反方向规则遍历,规则4:跨列遍历规则,锁定字符遍历表中的某几列以各列同方向、各列反方向的规则遍历。步骤3:将暴力遍历规则和密码集合作为遍历算法的数据源,使用遍历算法对密码集合中的字符进行构造生成最终的遍历密码。具体包括:对于暴力遍历规则的规则1,包括以下步骤:步骤31:设置两个索引,一个指向起始位置A,一个指向终止位置B,初始时两个索引都指向表的第1行第1列,应该是初始时A和B位于第一行第一列,步骤32:从A开始到B结束,以及从A开始到B然后返回A结束两种情况构造密码,密码相同则过滤,因为构造过程中可能构造出相同的密码,只取第1次构造出的。步骤33:B右移1位,A从第1位开始,按照步骤32的方法构造密码,完成后A右移1位,按照步骤32的方法继续构造密码,直到A与B重合;步骤34:重复步骤33,直到A与B在最右边重合,此时A与B改变移动方向,B左移1位,按照步骤32的方法构造密码,完成后A左移1位继续构造密码,直到A与B在最左端重合,此时完成表第1行的密码遍历;步骤35:将A和B分别移往第2行第1位,重复步骤32-步骤34,以此类推完成第2-4行的密码遍历;每行的起始位置以及终止位置是指包含有效字符的位置,置0的位置不使用。为了进一步说明本专利技术的方法,列举一个具体的运用实例,充分详细说明,以规则1为例初始时,A与B均指向第1行第1列,如图1所示此时,从A到B,以及从A到B再返回A,构造出两个密码均为“`”,过滤(排重)只保留其中一个;B往右移1位,如图2所示从A到B,本文档来自技高网...
【技术保护点】
一种基于键盘规则的密码遍历算法,其特征在于:包括以下步骤:步骤1:获取键盘上的字符并根据键盘字符规则建立密码集合,步骤2:设定密码集合的暴力遍历规则,步骤3:将暴力遍历规则和密码集合作为遍历算法的数据源,使用遍历算法对密码集合中的字符进行构造生成最终的遍历密码。
【技术特征摘要】
1.一种基于键盘规则的密码遍历方法,其特征在于:包括以下步骤:步骤1:获取键盘上的字符并根据键盘字符规则建立密码集合,所述密码集合包括第一遍历字符表和第二遍历字符表,该第一和第二遍历字符表均为4行13列,第一遍历字符表依据键盘字符规则存储单纯按下按键后输入的字符,第二遍历字符表依据字符键盘规则存储按住“Shift”按键后输入的字符,且根据键盘字符规则,所述第一和第二遍历字符表中的第1行均顶格保存,第2至第4行均空1格开始保存,步骤2:设定密码集合的暴力遍历规则,其中,对于第一和第二字符遍历表,暴力遍历规则包括:规则1:不跨行遍历规则,锁定字符遍历表中的某行以从左往右、从右往左、从左往右再返回、从右往左再返回规则遍历,规则2:从上往下遍历规则,锁定字符遍历表中的某列以从上往下,从下往上,从上往下再返回,从下往上再返回规则遍历,规则3:跨行遍历规则,锁定字符遍历表中的某几行以各行同方向、各行反方向规则遍历,规则4:跨列遍历规则,锁定字符遍历表中的某几列以各列同方向、各列反方向的规则遍历,步骤3:将暴力遍历规则和密码集合作为遍历算法的数据源,使用遍历算法对密码集合中的字符进行构造生成最终的遍历密码。2.根据权利要求1所述的一种基于键盘规则的密码遍历方法,其特征在于:所述步骤3中,对于暴力遍历规则的规则1,包括以下步骤:步骤31:设置两个索引,一个指向起始位置A,一个指向终止位置B,初始时两个索引都指向表的第1行第1列;步骤32:从A开始到B结束,以及从A开始到B然后返回A结束两种情况构造密码,密码相同则过滤;步骤33:B右移1位,A从第1位开始,按照步骤32的方法构造密码,完成后A右移1位,按照步骤32的方法继续构造密码,直到A与B重合;步骤34:重复步骤33,直到A与B在最右边重合,此时A与B改变移动方向,B左移1位,按照步骤32的方法构造密码,完成后A左移1位继续构造密码,直到A与B在最左端重合,此时完成表第1行的密码遍历;步骤35:将...
【专利技术属性】
技术研发人员:张光斌,王海滨,张永光,汤伟宾,
申请(专利权)人:厦门市美亚柏科信息股份有限公司,
类型:发明
国别省市:福建;35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。