密码遍历方法和装置的制造方法_4

文档序号:8397961阅读:来源:国知局
,将该最大值对应的字符作为第j个遍历密码的第I位字符。
[0147]步骤S4085:将第j个遍历密码的每一位字符按位组合,以确定第j个遍历密码。
[0148]根据步骤S4081和步骤S4082可确定第j个遍历密码的前X位字符,在确定第j个遍历密码的第X位字符后,按照上述步骤S4083和步骤S4084确定第j个遍历密码的第X+1位字符,再按照上述步骤S4063和步骤S4034确定第j个遍历密码的第X+2位字符,依次类推,直到确定第j个遍历密码的第X+1位字符至第N位字符,至此确定了第j个遍历密码的每一位字符,最终在该步骤S4085中,将每一位字符按位组合即可得到第j个遍历密码。
[0149]实施例5
[0150]该实施例5提供一种更优选的密码遍历方法,在该实施例中,有效密码的密码位数为6到16位,预设的字符集由O到9共10个数字、a到z共26个小写字母、A到Z该共26个大写字母组成,该实施例的方法包括如下的步骤。
[0151]步骤1:遍历初始化。
[0152]在初始化过程中,获取概率因子表、关联因子表和预设的字符集,将密码长度初始化为6,确定空间覆盖率的阈值。
[0153]其中,概率因子表中包括多个字符对应密码第一位至第十六位的概率因子,也即,每个字符对应密码第一位至第十六位具有16个概率因子。关联因子表中包括多个字符中任意两个字符的关联因子。预设的字符集即为由O到9共10个数字、a到z共26个小写字母、A到Z该共26个大写字母组成的字符集。空间覆盖率的阈值为一个预设的百分比,例如40%。
[0154]步骤2:根据所选的字符集,对概率因子表和关联因子表进行裁减,将这两个表中非字符集中字符对应的因子删除。
[0155]步骤3:首先构造密码的第一位字符。由于第一位字符不需要与其它字符关联,因此从概率因子表中取最大概率因子对应的字符,代入第一位;
[0156]步骤4:构造密码的第二位字符。对于字符集中的每个字符,从概率因子表中取出该字符的概率因子α,从关联因子表中取出该字符与步骤3中已构造出的第一位字符的关联因子β,计算α Χ0.6+β Χ0.4,从而得到字符集中每个字符对应的计算结果,然后将所有计算结果中最大计算结果对应的字符代入第二位;
[0157]步骤5:然后采用步骤4的方法,构造第三位字符、第四位字符......,依此类推,
直到完成密码所有位的填充,此时完成一个密码的构造;
[0158]步骤6:将已构造出的密码的第二位字符的下一个字符的α Χ0.6+β Χ0.4值(也即实施例2中的第二概率)与第一位字符的下一个字符的α (也即实施例2中的第一概率)比较,如果第一位字符的下一个字符的α (也即第一概率)大,则更新该已构造出的密码的第一位的字符,更新后的第一位的字符为上述第一位字符的下一个字符,如果下一个字符的α Χ0.6+β Χ0.4大,则保留该已构造出的密码的第一位字符,更新该已构造出的密码的第二位的字符,更新后的第二位的字符为上述的第二位字符的下一个字符;
[0159]步骤7:按照步骤4-5的方法,步骤6后剩下的其他所有位的字符的确定,构造出下一个密码;
[0160]步骤8:重复步骤6-7,直到构造的密码数与完整的密码空间之比达到指定的空间覆盖率阈值,完成一次密码遍历,并且将密码长度加1,再进行一次变化密码长度后的密码遍历。
[0161]采用该实施例提供的密码遍历方法的实施例,基于社会工程学的研宄成果,运用了密码字符的分布统计规律,可以将常用的密码优先构造出来,大部分无效的密码则位于遍历的后部,与现有技术相比,可以在更短时间内找到有效密码。同时,引入空间覆盖率,在极大缩小密码空间的同时不会对成功率造成大的影响。
[0162]实施例6
[0163]该实施例6提供一种更优选的密码遍历方法,在该实施例中,有效密码的密码位数为6到16位,预设的字符集由O到9共10个数字、a到ζ共26个小写字母、A到Z该共26个大写字母组成,该实施例的方法包括如下的步骤。
[0164]步骤1:遍历初始化。
[0165]在初始化过程中,获取概率因子表、关联因子表和预设的字符集,将密码长度初始化为1,确定空间覆盖率的阈值。
[0166]其中,概率因子表中包括多个字符对应密码第一位至第十六位的概率因子,也即,每个字符对应密码第一位至第十六位具有16个概率因子。关联因子表中包括多个字符中任意两个字符的关联因子。预设的字符集即为由O到9共10个数字、a到ζ共26个小写字母、A到Z该共26个大写字母组成的字符集。空间覆盖率的阈值为一个预设的百分比,例如40%。
[0167]步骤2:根据所选的字符集,对概率因子表和关联因子表进行裁减,将这两个表中非字符集中字符对应的因子删除。
[0168]步骤3:首先构造密码的第一位字符。如果密码长度只有一位,则第一位字符按照概率因子计算出的概率来决定,也即从概率因子表中取最大概率因子对应的字符,代入第一位,也即采用实施例4中步骤S4061中的第一种计算方式实现;如果密码长度两位以上,采用实施例4中步骤S4061中的第二种计算方式实现,其中的a取0.6,b取0.4,此处不再赘述。
[0169]步骤4:构造密码的第二位字符。此处采用实施例4中步骤S4063中的计算方式实现,具体地,对于字符集中的每个字符,从概率因子表中取出该字符的概率因子α,从关联因子表中取出该字符与步骤3中已构造出的第一位字符的关联因子β,计算α X0.6+β Χ0.4,从而得到字符集中每个字符对应的计算结果,然后将所有计算结果中最大计算结果对应的字符代入第二位;
[0170]步骤5:然后采用步骤4的方法,构造第三位字符、第四位字符......,依此类推,
直到完成密码所有位的填充,此时完成一个密码的构造;
[0171]步骤6:在当前已构造出的密码基础上,取每一位概率次大的字符(也即实施例4中步骤S408中定义的下一个字符),各位概率次大的字符的对应概率为Pl—Ρη,确定Pl—Pn的最大值(也即实施例4中步骤S408中第X字符对应的概率),例如Pm最大,则m位更新为下一个字符(也即实施例4中步骤S4082),m位之前的字符不更新;
[0172]步骤7:按照步骤4-5的方法,更新X位后其他所有位的字符,构造出下一个密码;
[0173]步骤8:重复步骤6-7,直到构造的密码数与完整的密码空间之比达到指定的空间覆盖率阈值,完成一次密码遍历,并且将密码长度加1,再进行一次变化密码长度后的密码遍历。
[0174]采用该实施例提供的密码遍历方法的实施例,基于社会工程学的研宄成果,运用了密码字符的分布统计规律,可以将常用的密码优先构造出来,大部分无效的密码则位于遍历的后部,与现有技术相比,可以在更短时间内找到有效密码。同时,引入空间覆盖率,在极大缩小密码空间的同时不会对成功率造成大的影响。
[0175]以上是对本发明所提供的密码遍历方法进行的描述。下面将对本发明提供的密码遍历装置进行描述,需要说明的是,该装置可用于执行上述任意一种密码遍历方法。
[0176]实施例7
[0177]图5是根据本发明实施例7的密码遍历装置的框图,与本发明实施例1提供的密码遍历方法相对应,本发明实施例还提供了一种密码遍历装置,参见图5,该装置可以包括第一获取模块10、第二获取模块20和确定模块30。
[0178]其中,第一获取模块10用于获取进行密码遍历的预设字符集。
[0179]第二获取模块20用于获取预设字符集对应的概率因子集和关联因子集,其中,概率因子集包括预设字符集中每一字符对应密码每位的概率因子,关联因子集包括预设字符集中任意两个字符的关联因子,具体地,第二获取模块20执行以下步骤:根据社会工程学的研宄成果确定预设字符集中的各字符对应密码每一位的概率因子、预设字符集中任意两个字符的关联因子;或者统计一个或多个密码字典得到预设字符集中的各字符对应密码每一位的概率因子、预设字符集中任意两个字符的关联因子。
[0180]确定模块30用于根据概率因子集和关联因子集确定遍历密码。
[0181]优选地,确定模块30包括第一遍历密码确定模块和第二遍历密码确定模块。
[0182]第一遍历密码确定模块用于执行以下步骤:根据概率因子集和关联因子集计算预设字符集中各字符在第一个遍历密码第一位的出现概率;确定预设字符集中在第一个遍历密码第一位的出现概率最大的字符为第一个遍历密码的第一位字符;在确定第一个遍历密码的第η-1位字符后,根据第η-1位字符、概率因子集和关联因子集计算预设字符集中各字符在第一个遍历密码第η位的出现概率,η = 2,3,4…N,N为进行密码遍历的密码长度;确定预设字符集中在第一个遍历密码第η位的出现概率最大的字符为第一个遍历密码的第η位字符;将第一个遍历密码的每一位字符按位组合,以确定第一个遍历密码。
[0183]第二遍历密码确定模块用于执行以下步骤:在确定第j_l个遍历密码后,根据第j-1个遍历密码、概率因子集和关联因子集更新第j-Ι个遍历密码,以得到第j个遍历密码,其中,j = 2,3,4…J,J为进行密码遍历的密码个数。
[0184]优选地,第一字符为预设字符集中任一字符,则第一遍历密码确定模块在计算第一字符在第一个遍历密码第一位的出现概率时,具体执行以下步骤:将第一字符对应密码第一位的概率因子作为第一字符在第一个遍历密码第一位的出现概率;或者采用以下公式计算第一字符在第一个遍历密码第一位的出现概率,
[0185]P1= aiXb1?
[0186]其中,P1S第一字符在第一个遍历密码第一位的出现概率,α I为第一字符对应密码第一位的概率因子,β i为第一字符与预设字符集中各字符的关联因子,a jP b 预设的权重值,且^b1= 1
[0187]优选地,第m字符为第j-Ι个遍历密码的第m位字符的下一个字符,第m字符为将预设字符集中各字符按照在j-Ι个遍历密码的第m位的出现概率由大到小排序后,与第m位字符相邻的下一个字符,第m字符对应的概率为第m字符在j-Ι个遍历密码的第m位的出现概率,m = 1,2,3,4…N ;第X字符为第j-Ι个遍历密码的第X位字符的下一个字符,第X字符对应的概率为第j-1个遍历密码的各位字符的下一个字符对应的概率中的最大概率。
[0188]第二遍历密码确定模块用于执行以下步骤:将第j-Ι个遍历密码的第一位字符至第X-1位字符依次作为第j个遍历密码的第一位字符至第X-1位字符;将第X字符作为第j个遍历密码的第X位字符;针对第j个遍历密码的第x+1位字符至第N位字符,在确定第j个遍历密码的第1-1位字符后,根据第1-1位字符、概率因子集和关联因子集计算预设字符集中各字符在第j个遍历密码第I位的出现概率,I = x+1, x+2…N,N为进行密码遍历的密码长度;确定预设字符集中在第j个遍历密码第I位的出现概率最大的字符为第j个遍历密码的第I位字符;将第j个遍历密码的每一位字符按位组合,以确定第j个遍历密码。
[0189]优选地,第二字符为预设字符集中任一字符,针对第一个遍历密码,第一遍历密码确定模块在根据该遍历密码的第q_l位字符、概率因子集和关联因子集计算第二字符在该遍历密码第q位的出现概率时,采用以
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1