本发明涉及密码算法领域,特别涉及一种密码破解算法自动匹配方法、系统、计算机程序及存储介质。
背景技术:
密码学技术与我们的生活息息相关,比如设置个人电脑登录口令能够保护我们的电脑数据安全;设置网站登录口令能够保护我们的网站数据安全;设置数据库访问口令能够保护数据库的数据安全等。但当用户忘记自己设置的口令时,就需要借助密码破解软件或系统对口令进行还原,如hashcat、jointheripper等。
使用密码破解软件或系统进行口令还原有两个前提:1、获得口令还原所需的密文特征值;2、明确口令还原所使用的密码破解算法。用户可使用工具(如jointheripper提供的特征提取脚本,或自行开发特征提取脚本)获取密码特征值,但密码破解算法的确定有一定的技术门槛,当用户面对密码破解软件或系统中成百上千个(目前最新版本的hashcat6.1.1支持近300种密码破解算法)可选的密码破解算法时,往往让用户感到一头雾水。
目前市面上常用的密码破解软件或系统在添加破解任务时需人工选择密码破解算法。以下是用户获得的两个密文特征值:
1、$1$kqx8vifh$exah7r5/vdailk3zrsk8g1,是使用了md5crypt加密算法生成的linux系统用户登录口令的加密特征值;
2、$rar3$*0*0b67dc4a9076fd5e*e9db976e24bd0b43bb4d5ab69857b402,是使用rar3协议生成的rar加密文件的加密特征值;
很显然手动选择密码破解算法让用户不知所措,无形中增加了密码破解软件或系统的使用难度,降低了口令还原的成功率。
技术实现要素:
针对现有技术中存在的问题,提供一种密码破解算法自动匹配的方法,以便解决用户在口令还原过程中选择密码破解算法困难的问题,提高口令还原的成功率。
本发明采用的技术方案如下:一种密码破解算法自动匹配方法,包括以下过程:
步骤1、创建加密特征值正则表;
步骤2、判断导入是特征值还是文件,若是特征值,进入步骤4;若是文件则进行步骤3;
步骤3、进行文件类型判断,并根据文件类型进行特征提取,提取成功,则获取特征值进入步骤4;反之则结束操作。
步骤4、对加密特征值进行密码破解算法匹配。
进一步的,所述步骤1中,加密特征值正则表至少包括密码算法名称和加密特征值正则表达式;所述加密特征值正则表达式包含对应的加密特征值的所有特征。
进一步的,所述步骤1还包括在加密特征值正则表达式对应加密特征值中增加特定标识位,以区分相似加密特征值。
进一步的,所述步骤3中,文件类型判断方法为:通过对文件头进行解析获取文件类型或结合文件后缀名一同判断;若两种方式发生冲突,以文件头解析结果为准。
进一步的,所述步骤3中,特征提取过程为:
根据文件类型调用相应的特征提取脚本对文件进行特征提取,特征提取脚本可使用jointheripper提供的特征提取脚本,也可按需对其进行改造或自行编程实现,存在以下三种结果:
1)提取成功,获得加密特征值;
2)文件为非加密文件;
3)提取失败及错误码;
若结果为1)则进入步骤4;若结果为2),判断文件为加密特征值文件或其他情况,若为加密特征值文件,则读取加密特征值进入步骤4,若为其他情况则结束操作;若结果为3),结束操作。
进一步的,所述步骤4的具体过程为:调用密码破解算法匹配模块对加密特征值进行密码破解算法匹配,通过对加密特征值正则表进行查表获得所有正则表达式,将加密特征值与正则表达式进行正则匹配碰撞,将碰撞成功的正则表达式对应的密码破解算法列出,列出的密码破解算法即为匹配成功的疑似密码破解算法。
本发明还提供了一种密码破解算法自动匹配系统,包括加密特征值提取模块、密码破解算法匹配模块、加密特征值正则表、特征提取脚本库;
加密特征值提取模块,用于调用特征值提取模块对输入的加密文件进行特征提取,输出加密特征值至密码破解算法匹配模块;
密码破解算法匹配模块,用于调用加密特征值正则表对输入的加密特征值或加密特征值文件进行正则匹配,输出密码破解算法匹配结果。
本发明还提供了一种计算机程序,其包括有计算机程序指令,其中,所述程序指令被处理器执行时用于实现上述的密码破解算法自动匹配方法。
本发明还提供了一种存储介质,其上存储有计算机程序指令,其中,所述程序指令被处理器执行时用于实现上述的密码破解算法自动匹配方法。
与现有技术相比,采用上述技术方案的有益效果为:采用本发明提出的方案能够大大缩小密码破解算法的选择范围,除少数加密特征值(如基本hash类)可能出现多个密码破解算法需人工干预外,大多数情况下,该方法可直接获得唯一的密码破解算法。通过缩小密码破解算法选择范围提高密码破解系统或软件的易用性,提高口令破解的成功率。
附图说明
图1是本发明的密码破解算法自动匹配方法的工作流程图。
图2是本发明的密码破解算法自动匹配系统框图。
具体实施方式
下面结合附图对本发明做进一步描述。
实施例1
如图1,一种密码破解算法自动匹配方法,包括以下过程:
步骤1、创建加密特征值正则表;
步骤2、判断导入是特征值还是文件,若是特征值,进入步骤4;若是文件则进行步骤3;
步骤3、进行文件类型判断,并根据文件类型进行特征提取,提取成功,则获取特征值进入步骤4;反之则结束操作。
步骤4、对加密特征值进行密码破解算法匹配。
具体的,
所述步骤1中,该表至少应该包含密码破解算法名称和加密特征值正则表达式两列,从而建立加密特征值与密码破解算法之间的关系。值得注意的是,正则表达式应该包含加密特征值的所有特征,避免出现特征过于宽泛,导致一个正则表达式对应多个密码破解算法的情况。如表1是两个很相近的加密特征值及其正则表达式:
若特征不明显,可在加密特征值中增加特定标识位,用以区分加密特征值,可与特征提取脚本配合实现。
所述步骤3中,文件类型判断方法为:通过对文件头进行解析获取文件类型和/或结合文件后缀名一同判断,如*.doc为2003版本的msword,*.xlsx为2007以上版本的msexcel;若两种方式发生冲突,以文件头解析结果为准。
特征提取过程为:
根据文件类型调用相应的特征提取脚本对文件进行特征提取,特征提取脚本可使用jointheripper提供的特征提取脚本,也可按需对其进行改造或自行编程实现,存在以下三种结果:
1)提取成功,获得加密特征值;
2)文件为非加密文件;
3)提取失败及错误码;
若结果为1)则进入步骤4;若结果为2),判断文件为加密特征值文件或其他情况,若为加密特征值文件,则读取加密特征值进入步骤4,若为其他情况这结束操作;若结果为3),结束操作。
步骤4的具体过程为:调用密码破解算法匹配模块对加密特征值进行密码破解算法匹配,通过对加密特征值正则表进行查表获得所有正则表达式,将加密特征值与正则表达式进行正则匹配碰撞,将碰撞成功的正则表达式对应的密码破解算法列出,列出的密码破解算法即为匹配成功的疑似密码破解算法。
表2是本发明对比使用hashcat时,密码破解算法的选择范围:
可以明显的看出,采用本发明的匹配方法后,能够极大的所见密码破解算法的选择范围。
实施例2
在实施例1的基础上还提供了一种密码破解算法自动匹配系统,包括加密特征值提取模块、密码破解算法匹配模块、加密特征值正则表、特征提取脚本库;
加密特征值提取模块,用于调用特征值提取模块对输入的加密文件进行特征提取,输出加密特征值至密码破解算法匹配模块;
密码破解算法匹配模块,用于调用加密特征值正则表对输入的加密特征值或加密特征值文件进行正则匹配,输出密码破解算法匹配结果。
实施例3
在实施例2的基础上还提供了一种计算机程序,其包括有计算机程序指令,其中,所述程序指令被处理器执行时用于实现权利要求1-6中任一项所述的密码破解算法自动匹配方法。
实施例4
在实施例3的基础上还提供了一种存储介质,其上存储有计算机程序指令,其中,所述程序指令被处理器执行时用于实现权利要求1-6中任一项所述的密码破解算法自动匹配方法。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。如果本领域技术人员,在不脱离本发明的精神所做的非实质性改变或改进,都应该属于本发明权利要求保护的范围。
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
1.一种密码破解算法自动匹配方法,其特征在于,包括以下过程:
步骤1、创建加密特征值正则表;
步骤2、判断导入是特征值还是文件,若是特征值,进入步骤4;若是文件则进行步骤3;
步骤3、进行文件类型判断,并根据文件类型进行特征提取,提取成功,则获取特征值进入步骤4;反之则结束操作;
步骤4、对加密特征值进行密码破解算法匹配。
2.根据权利要求1所述的密码破解算法自动匹配方法,其特征在于,所述步骤1中,加密特征值正则表至少包括密码算法名称和加密特征值正则表达式;所述加密特征值正则表达式包含对应的加密特征值的所有特征。
3.根据权利要求2所述的密码破解算法自动匹配方法,其特征在于,还包括在加密特征值正则表达式对应加密特征值中增加特定标识位,以区分相似加密特征值。
4.根据权利要求3所述的密码破解算法自动匹配方法,其特征在于,所述步骤3中,文件类型判断方法为:通过对文件头进行解析获取文件类型或结合文件后缀名一同判断;若两种方式发生冲突,以文件头解析结果为准。
5.根据权利要求4所述的密码破解算法自动匹配方法,其特征在于,所述步骤3中,特征提取过程为:
根据文件类型调用相应的特征提取脚本对文件进行特征提取,存在以下三种结果:
1)提取成功,获得加密特征值;
2)文件为非加密文件;
3)提取失败及错误码;
若结果为1)则进入步骤4;若结果为2),判断文件为加密特征值文件或其他情况,若为加密特征值文件,则读取加密特征值进入步骤4,若为其他情况则结束操作;若结果为3),结束操作。
6.根据权利要求1-5任一所述的密码破解算法自动匹配方法,其特征在于,所述步骤4的具体过程为:调用密码破解算法匹配模块对加密特征值进行密码破解算法匹配,通过对加密特征值正则表进行查表获得所有正则表达式,将加密特征值与正则表达式进行正则匹配碰撞,将碰撞成功的正则表达式对应的密码破解算法列出,列出的密码破解算法即为匹配成功的疑似密码破解算法。
7.一种密码破解算法自动匹配系统,其特征在于,包括加密特征值提取模块、密码破解算法匹配模块、加密特征值正则表、特征提取脚本库;
加密特征值提取模块,用于调用特征值提取模块对输入的加密文件进行特征提取,输出加密特征值至密码破解算法匹配模块;
密码破解算法匹配模块,用于调用加密特征值正则表对输入的加密特征值或加密特征值文件进行正则匹配,输出密码破解算法匹配结果。
8.一种计算机程序,其包括有计算机程序指令,其中,所述程序指令被处理器执行时用于实现权利要求1-6中任一项所述的密码破解算法自动匹配方法。
9.一种存储介质,其上存储有计算机程序指令,其中,所述程序指令被处理器执行时用于实现权利要求1-6中任一项所述的密码破解算法自动匹配方法。
技术总结