发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种识别加密算法的方法及系统,用于解决现有技术中难以识别加密信息是通过何种加密算法进行加密的问题。
为实现上述目的及其他相关目的,本发明提供一种识别加密算法的方法,包括:将待识别的加密字符串与各预设样本字符串比对,各所述预设样本字符串是通过唯一关联的加密算法生成的;根据比对结果一致的预设样本字符串确定所述加密字符串的加密算法。
可选的,所述比对包括:比对所述加密字符串与各预设样本字符串的字符串长度;分别比对所述加密字符串与筛选出的与所述加密字符串的字符串长度相同的预设样本字符串的首位和末位的字符类型,所述字符类型包括:数字、大写字母、小写字母和特殊字符。
可选的,各所述预设样本字符串的生成是以相同预设明文通过各唯一关联的加密算法得出的。
可选的,各所述加密算法的运算规则以预定格式存储于独立的算法库中。
可选的,所述加密算法的类型至少包括:MD5算法、SHA-1算法或SHA-256算法。
为实现上述目的及其他相关目的,本发明提供一种识别加密算法的系统,包括:处理模块,用于将待识别的加密字符串与各预设样本字符串比对,各所述预设样本字符串是通过唯一关联的加密算法生成的;输出模块,用于根据比对结果一致的预设样本字符串确定所述加密字符串的加密算法。
可选的,所述比对包括:比对所述加密字符串与各预设样本字符串的字符串长度;分别比对所述加密字符串与筛选出的与所述加密字符串的字符串长度相同的预设样本字符串的首位和末位的字符类型,所述字符类型包括:数字、大写字母、小写字母和特殊字符。
可选的,各所述预设样本字符串的生成是以相同预设明文通过各唯一关联的加密算法得出的。
可选的,各所述加密算法的运算规则以预定格式存储于独立的算法库中。
可选的,所述加密算法的类型至少包括:MD5算法、SHA-1算法或SHA-256算法。
如上所述,本发明的一种识别加密算法的方法及系统,将待识别的加密字符串与各预设样本字符串比对,各所述预设样本字符串是通过唯一关联的加密算法生成的;根据比对结果一致的预设样本字符串确定所述加密字符串的加密算法,能够简单、快速地识别加密信息所使用的加密算法,提高工作效率。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1,本发明提供一种识别加密算法的方法,包括如下步骤:
步骤S1:将待识别的加密字符串与各预设样本字符串比对,各所述预设样本字符串是通过唯一关联的加密算法生成的。
步骤S2:根据比对结果一致的预设样本字符串确定所述加密字符串的加密算法。
需要说明的是,在步骤S1中,预设样本字符串是任意明文信息通过加密算法计算得到的,各预设样本字符串与其对应的加密算法相关联。例如,明文信息为“123”,加密算法为MD5算法时,则对应生成的预设样本字符串是:202cb962ac59075b964b07152d234b70,又例如,明文信息为“专利”,加密算法为SHA-1算法时,则对应生成的预设样本字符串是:0c02ef2c2dfdb41c5610a478f13d6fe0c28dd2d1。优选的,各个预设样本字符串的生成是以相同预设明文通过各唯一关联的加密算法得出的,以便增加比对的可靠性和准确性,避免出现不同的明文以不同的加密算法生成的密文相同,而导致比对出错。
在一实施例中,比对的步骤包括:
1)首先将所述加密字符串的字符串长度与各预设样本字符串的字符串长度进行比对。若长度一致,则执行下述步骤2),若长度不一致,则与其对应的加密算法可以排除。
2)分别比对所述加密字符串与筛选出的与所述加密字符串的字符串长度相同的预设样本字符串的首位和末位的字符类型,所述字符类型包括:数字、大写字母、小写字母和特殊字符,特殊字符例如:、#、¥、&、+或=等。
例如,假设待识别的加密字符串为:046a899ee7a6ec88d370211a518c9e80,预设样本字符串有两种,第一预设样本字符串是98e8c00f6d24847da9b8b7fca267f716,对应的加密算法为MD5算法,第二预设样本字符串是610da878ac9f5d3f5e7769f2bea5ab7ee8b89ff1,对应的加密算法为SHA-1算法。在比对时,首先比对字符串长度。待识别的加密字符串长度为32位,第一预设样本字符串长度是32为,第二预设样本字符串长度是40位,则排除SHA-1算法,执行待识别的加密字符串与第一预设样本字符串的首位、末位字符类型比对。可见,比对首位的字符类型,结果为都是数字,比对末位字符类型,结果为都是数字,则确定本例中待识别的加密字符串是通过MD5算法加密生成的。
在一实施例中,所述加密算法的类型至少包括:MD5算法、SHA-1算法或SHA-256算法。事实上,常用加密算法的识别都可以经过本申请中的方法来实现,因为每种加密算法生成的HASH值都具有属于自己的长度、首位字符类型及末位字符类型,常用算法包括但不限于:ADLER-32,CRC-16,DES(Unix),FCS-16,GHash-32-3,Haval-160(HMAC),LineageIIC4,DomainCachedCredentials-MD4(MD4(($pass)).(strtolower($username))),XOR-32,MySQL,MD4,Tiger-128,md5($username.md5($pass).$salt),RipeMD-160(HMAC),SNEFRU-256,Whirlpool(HMAC)等。由于加密算法的类型众多,在极少数的情况下可能会出现识别结果有两种或两种以上的不同算法,此时,可以分别计算其关联的预设字符串与待识别字符串之间的相似度,结果选定为相似度最高的预设字符串关联的加密算法。
需要说明的是,在执行识别加密算法的步骤前,要预先编写各加密算法的运算规则,编写工具可以为PYTHON。经集成和测试后,每种加密算法以预定格式形成独立的算法库,其优点是方便批量加入新增的算法以扩展算法库的规模,同时也方便日常管理和维护。
请参阅图2,与上述方法实施例原理相似的是,本发明提供一种识别加密算法的系统1,包括:处理模块11和输出模块12。由于前述方法实施例中的技术特征也可以应用到本系统实施例中,因而不再重复赘述。
需要说明的是,本实施例的系统1可以是搭载于硬件结构上的软件实现,也可以是实现软件编程的硬件结构。当系统1为硬件结构时,处理模块11可以是CPU、MCU或SOC等处理器,输出模块12可以是显示器等设备。
在一优选的实施例中,各所述预设样本字符串是通过唯一关联的加密算法生成的,各所述预设样本字符串的生成是以相同预设明文通过各与其关联的加密算法得出的,各所述加密算法的运算规则以预定格式存储于独立的算法库中,加密算法的类型至少包括:MD5算法、SHA-1算法或SHA-256算法等。处理模块11将待识别的加密字符串与各预设样本字符串比对,包括:首先,比对所述加密字符串与各预设样本字符串的字符串长度,然后,分别比对所述加密字符串与筛选出的与所述加密字符串的字符串长度相同的预设样本字符串的首位和末位的字符类型,字符类型包括:数字、大写字母、小写字母和特殊字符。输出模块12根据比对结果一致的预设样本字符串确定所述加密字符串的加密算法。
综上所述,本发明的识别加密算法的方法及系统,将待识别的加密字符串与各预设样本字符串比对,根据比对结果确定加密字符串的加密算法,操作简单、识别效率高,有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。