一种加密的方法及装置与流程

文档序号:19075122发布日期:2019-11-08 21:21阅读:200来源:国知局
一种加密的方法及装置与流程

本申请涉及计算机技术领域,尤其涉及一种加密的方法及装置。



背景技术:

随着信息时代的快速发展,诸如个人计算机(Personal Computer,PC)、智能手机、平板电脑等终端可以为用户提供越来越多的便利,而信息安全也逐渐已成为了人们愈发关注的重点。

校验是保证信息安全的一种常用手段,其主要方式为:预先设置标准密码,并由终端或服务器保存标准密码,校验时,用户输入待认证密码,终端或服务器则比对标准密码和待认证密码,若二者一致,则校验通过,否则,校验不通过。

为了保证终端或服务器中保存的标准密码的安全性,在现有技术中,保存密码的方式已经由保存明文密码进化为保存密文密码,其方法是:预先设置标准密码(该标准密码为明文密码),终端或服务器采用预设的某种不可逆加密算法对该标准密码进行加密,得到标准密文密码,将该标准密文密码保存,在校验时,用户输入待认证密码(该待认证密码也是明文密码),终端或服务器采用同样的该不可逆加密算法对该待认证密码进行加密,得到待认证密文密码,再比对保存的标准密文密码和待认证密文密码,若二者一致,则校验通过,否则校验不通过。

由于终端或服务器中保存的密文密码是通过不可逆加密算法加密的,因此,通过密文密码不可能还原出明文密码,可有效提高保存标准密码的安全性。但是,现有技术中终端在对预设的标准密码(明文密码)进行加密得到密文密码时,往往只采用一种加密算法进行加密,而仅通过一种密文密码进行加密很容易被碰撞攻击、暴力攻击或彩虹表比对攻击破解,因此,现有技术中的加密方式会降低保存的标准密码的安全性。



技术实现要素:

本申请实施例提供一种加密的方法及装置,用以解决现有技术中的加密方式会降低保存的标准密码的安全性的问题。

本申请实施例提供的一种加密的方法,包括:

获取明文字符串;

采用至少两种加密算法对所述明文字符串进行加密,得到相应的至少两种密文字符串;

分别在得到的每种密文字符串上截取字符;

根据截取到的字符,获得对所述明文字符串进行加密的加密结果。

本申请实施例提供的一种加密的装置,包括:

获取模块,用于获取明文字符串;

加密模块,用于采用至少两种加密算法对所述明文字符串进行加密,得到相应的至少两种密文字符串;

截取模块,用于分别在得到的每种密文字符串上截取字符;

加密结果获得模块,用于根据截取到的字符,获得对所述明文字符串进行加密的加密结果。

本申请实施例提供一种加密的方法及装置,该方法对获取的明文字符串采用至少两种加密算法进行加密,得到对应的至少两种密文字符串,分别在得到的每种密文字符串上截取字符,并根据截取到的字符,获得对所述明文字符串进行加密的加密结果。通过上述方法得到的加密结果包含不同加密算法进行加密得到的密文字符串,而且所包含的密文字符串并不是完整的密文字符串,而是截取得到的残缺的字符串,相对于通过单一加密算法进行加密后得到的完整密文字符串而言,可有效防止加密结果被碰撞攻击、暴力攻击或彩虹表比对攻击进行破解,从而提高了加密结果的安全性。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的加密的过程;

图2为本申请实施例提供的加密装置分别在得到的每种密文字符串上截取字符的示意图;

图3为本申请实施例提供的加密装置的结构示意图;

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1为本申请实施例提供的加密的过程,具体包括以下步骤:

S101:获取明文字符串。

在本申请实施例中,加密装置首先获取要加密的明文字符串。具体的,加密装置可确定用户输入的字符串,作为获取到的要加密的明文字符串。其中,用户可在设置密码时输入明文字符串,则该明文字符串可称为标准明文字符串,用户也可在校验时输入明文字符串,则该明文字符串可称为待认证明文字符串。所述的加密装置可以是终端,也可以服务器。

S102:采用至少两种加密算法对所述明文字符串进行加密,得到相应的至少两种密文字符串。

加密装置获取到明文字符串后,可从预先保存的多种加密算法中,选择出至少两种加密算法,并采用选择出的至少两种加密算法对该明文字符串进行加密,得到相应的至少两种密文字符串。

其中,所采用的至少两种加密算法可以是在预先保存的多种加密算法中随机选择出的。预先保存的多种加密算法可包括诸如信息摘要算法第5版(Mes sage-Digest Algorithm 5,MD5)、安全哈希算法1(Secure Hash Algorithm 1,SHA1)和安全杂乱信息标准(Secure Hash Standard,SHS)等加密算法。例如,假设加密装置获取的明文字符串为“drami890”,在预先保存的多种加密算法中随机选取到MD5和SHA1两种不同的加密算法,则可通过选择的MD5加密算法对明文字符串“drami890”进行加密,得到密文字符串“woeijoc123s oijesoiej333gienpmxde”,通过选择的SHA1加密算法对明文字符串“drami890”进行加密,得到密文字符串“xxifmeng3255die5234fecj7hntu9dqafh”,在得到不同的密文字符串后,加密装置将对不同的密文字符串进行处理。

S103:分别在得到的每种密文字符串上截取字符。

在得到不同的密文字符串后,加密装置将在各密文字符串上截取字符,对于通过不同的加密算法得到的每种密文字符串而言,截取的字符并不是完整的密文字符串,也即,在针对一种密文字符串进行截取时,只截取该密文字符串中的部分字符。

具体的,加密装置在各密文字符串上截取字符时,可先生成若干个大于0的随机数,再根据生成的各随机数,分别在得到的每种密文字符串上截取字符。进一步的,在根据随机数截取字符时,可针对每个随机数,在得到的至少两种密文字符串中选择一种,再从选择的密文字符串中随机截取字符,截取的字符的数量就是该随机数。

为了保证在截取时只在一个密文字符串中截取一部分字符,加密装置生成的每个随机数均可小于该至少两种密文字符串的位数中的最小值。

继续沿用上例,将获取的明文字符串“drami890”通过加密算法MD5进行加密后得到密文字符串的位数为32,通过SHA1进行加密后得到密文字符串的位数为34,在这两个密文字符串中,位数最小的为32,则在生成随机数时,除保证大于0外,还要小于32。即,生成的随机数可取到的最大值为31,由于生成的随机数无法取到与密文字符串位数相同或大于密文字符串位数的数值,所以,在根据生成各随机数,分别在得到的每种密文字符串进行截取时,并不能截取到一个完整的密文字符串,只能在每种密文字符串中截取一部分字符。

在实际应用场景中,由于最终要得到的加密结果的位数不宜过短,也不宜过长,因此,加密装置可在截取字符之前,确定要获得的加密结果的位数。

具体的,加密装置可根据得到的至少两种密文字符串,确定要获得的加密结果的位数,并且,为了保证最终得到的加密结果中只含有每个密文字符串的一部分字符,加密装置确定的要获得的加密结果的位数可小于该至少两种密文字符串的位数之和。另外,加密装置在确定了要获得的加密结果的位数后,在截取字符时,生成的各随机数之和也要与确定的要获得的加密结果的位数相等。

继续沿用上例,将获取的明文字符串“drami890”通过MD5和SHA1两种加密算法分别进行加密后得到两种密文字符串,这两种密文字符串的位数之和为66,则加密装置在确定要获得的加密结果的位数时,所确定的位数要小于该两种密文字符串之和66。假设确定要获得的加密结果的位数为46,则生成的各随机数之和也就等于46。假设一共生成3个随机数,分别为8、22、16,该3个随机数相加的和为46,且这3个随机数均大于0,且小于两个密文字符串的位数中的最小值32。

在生成各随机数后,加密装置则可针对每个随机数,在得到的至少两种密文字符串中选择一种,从选择的密文字符串中任意截取字符,截取的字符的数量为该随机数的数值,如图2所示。

图2为本申请实施例提供的加密装置分别在得到的每种密文字符串上截取字符的示意图。

图2中,将获取的明文字符串“drami890”通过MD5和SHA1两种加密算法分别进行加密后得到如图2所示的两种密文字符串,在得到两种密文字符串后,加密装置确定出要获得的加密结果的位数为46,并在进行截取字符时,分别生成3个随机数:8、22、16。

如图2所示,针对随机数8,假设选择的密文字符串为通过MD5加密算法进行加密后得到的密文字符串,则在该密文字符串上截取前8位字符,即“woeijoc1”。

类似的,针对随机数22,假设选择的密文字符串为通过SHA1加密算法进行加密后得到的密文字符串,则在该密文字符串上截取前22位字符,即“xxi fmeng3255die5234fec”;针对随机数16,假设选择的密文字符串为通过MD5加密算法进行加密后得到的密文字符串,则在该密文字符串上截取后16位字符,即“oiej333gienpmxde”。

在上述截取方式中,截取的字符并不要求一定是密文字符串中一段连续的字符,也可以根据随机数的数值,在对应的密文字符串上随机截取相同数量的字符。

S104:根据截取到的字符,获得对所述明文字符串进行加密的加密结果。

加密装置通过上述步骤S103从各密文字符串上截取到字符后,可将截取到的字符进行组合,组合的结果作为获得的对该明文字符串进行加密的加密结果。

继续沿用上例,将分别在各密文字符串上截取的3段字符进行组合,得到组合结果“woeijoc1xxifmeng3255die5234fecoiej333gienpmxde”,并将该组合结果作为对获取的明文字符串“drami890”进行加密后得到的加密结果。

需要说明的是,将截取到的字符进行组合的方式并不唯一,在进行组合时,可将截取的各字符进行随机组合,来获得将明文字符串进行加密的加密结果。

通过上述方法得到的加密结果中包含通过不同加密算法进行加密得到的密文字符串,而且所包含的密文字符串并不是完整的密文字符串,而是截取得到的残缺的字符串,相对于通过单一加密算法进行加密后得到的完整密文字符串而言,可有效防止加密结果被碰撞攻击、暴力攻击或彩虹表比对攻击进行破解,从而提高了加密结果的安全性。

下面具体以明文字符串为标准明文字符串和待认证明文字符串为例进行详细说明。

在设置密码的场景中,用户输入的明文字符串可称为标准明文字符串,则加密装置通过如图1所示的方法对该标准明文字符串进行加密并得到加密结果后,可将该加密结果作为标准密文结果保存,并保存对该标准明文字符串进行加密时采用的至少两种加密算法,保存分别在每种密文字符串上截取字符时所采用的截取方式,以备后续认证使用。

在密码认证的场景中,用户输入的明文字符串可称为待认证明文字符串,则在通过如图1所示的方法对该待认证明文字符串进行加密时,在步骤S102中,加密装置可采用与预先保存的标准密文结果对应的至少两种加密算法,对该待认证明文字符串进行加密,在步骤S103中,加密装置可采用与预先保存的标准密文结果对应的截取方式,分别在得到的每种密文字符串上截取字符。后续的,加密装置根据截取到的字符得到对该待认证明文字符串进行加密的加密结果后,可将获得的该加密结果作为待认证密文结果,并判断该待认证密文结果与预先保存的标准密文结果是否相同,若是,则校验通过,否则,校验不通过。

例如,用户在设置登录密码时,输入一段明文字符串“ljq123bbb”,加密装置则将该明文字符串作为标准明文字符串。加密装置在接收到该标准明文字符串后,将对其进行加密,其中,加密装置从预先保存的多种加密算法中随机选取MD5和SHS两种加密算法对该标准明文字符串进行加密,分别得到相应的两种密文字符串,并生成3个随机数:12、7、14,针对随机数12,选择在通过SHS加密算法进行加密得到的密文字符串中截取前12位字符;针对随机数7,选择在通过MD5加密算法进行加密得到的密文字符串中截取前7位字符;针对随机数14,选择在通过MD5加密算法进行加密得到的密文字符串中截取后14位字符,将截取得到的字符按照上述3个随机数的排序(即,12、7、14)进行组合,得到的密文字符串为标准密文结果,并将该标准密文结果保存在加密装置中,同时,加密装置还要保存对该标准明文字符串进行加密所采用的加密算法,即MD5和SHS两种加密算法;保存上述3个随机数12、7、14以及,根据这3个随机数,分别在上述两种密文字符串中截取字符时所采用的截取方式;保存将截取得到的字符进行组合的方式。

而当用户在进行登录时,则需要通过认证,即用户输入一段明文字符串,加密装置则将该明文字符串作为待认证明文字符串,加密装置在接收到该待认证明文字符串时,将对该待认证明文字符串进行加密,其中加密装置采用与保存的上述标准密文结果对应的加密算法对该待认证明文字符串进行加密,即采用MD5和SHS两种加密算法进行加密,分别得到两种密文字符串;加密装置采用与保存的上述标准密文结果对应的3个随机数(即12、7、14),分别在上述两种密文字符串中截取字符,截取时,在通过SHS加密算法进行加密得到的密文字符串中截取前12位字符,在通过MD5加密算法进行加密得到的密文字符串中截取前7位字符,在通过MD5加密算法进行加密得到的密文字符串中截取后14位字符;加密装置采用与保存的上述标准密文结果对应的组合方式,将所截取得到的字符进行组合,即,按随机数12、7、14的排序顺序,将相应截取到的字符进行组合,得到的密文字符串为待认证密文结果。

由于对于上述标准明文字符串和待认证明文字符串均采用相同的加密方法进行了加密,因此,如果标准明文字符串和待认证明文字符串相同,则得到的标准密文结果和待认证密文结果一定是相同的,反之,如果标准明文字符串和待认证明文字符不同,则得到的标准密文结果和待认证密文结果不同,也就是说,如果标准明文字符串和待认证明文字符串相同,则认证通过,如果标准明文字符串和待认证明文字符不同,则认证不通过。

以上为本申请实施例提供的加密方法,基于同样的思路,本申请实施例还提供一种加密的装置,如图3所示。

图3为本申请实施例提供的加密装置的结构示意图,具体包括:

获取模块301,用于获取明文字符串;

加密模块302,用于采用至少两种加密算法对所述明文字符串进行加密,得到相应的至少两种密文字符串;

截取模块303,用于分别在得到的每种密文字符串上截取字符;

加密结果获得模块304,根据截取到的字符,获得对所述明文字符串进行加密的加密结果。

所述加密模块302还用于,在所述截取模块303分别在得到的每种密文字符串上截取字符之前,根据得到的所述至少两种密文字符串,确定要获得的加密结果的位数,其中,所述要获得的加密结果的位数小于所述至少两种密文字符串的位数之和。

所述截取模块303具体用于,生成若干个大于0的随机数,根据生成的各随机数,分别在得到的每种密文字符串上截取字符;其中,生成的各随机数之和等于所述要获得的加密结果的位数,每个随机数均小于所述至少两种密文字符串的位数中的最小值。

所述截取模块303具体用于,针对每个随机数,在得到的所述至少两种密文字符串中选择一种,从选择的密文字符串中随机截取字符,截取的字符的数量为该随机数。

所述加密结果获得模块304具体用于,将截取得到的字符进行组合,作为获得的对所述明文字符串进行加密的加密结果。

所述明文字符串为标准明文字符串。

所述装置还包括:

保存模块305,用于将所述加密结果作为标准密文结果保存,并保存对所述标准明文字符串进行加密时采用的至少两种加密算法,保存分别在每种密文字符串上截取字符时所采用的截取方式。

所述明文字符串为待认证明文字符串。

所述加密模块302具体用于,采用与预先保存的标准密文结果对应的至少两种加密算法,对所述待认证明文字符串进行加密。

所述截取模块303具体用于,采用与预先保存的标准密文结果对应的截取方式,分别在得到的每种密文字符串上截取字符。

所述装置还包括:

校验模块306,用于将获得的所述加密结果作为待认证密文结果;判断所述待认证密文结果与预先保存的标准密文结果是否相同;若是,则校验通过;否则,校验不通过。

本申请实施例提供一种加密的方法及装置,该方法对获取的明文字符串采用至少两种加密算法进行加密,得到对应的至少两种密文字符串,分别在得到的每种密文字符串上截取字符,并根据截取到的字符,获得对所述明文字符串进行加密的加密结果。通过上述方法得到的加密结果包含不同加密算法进行加密得到的密文字符串,而且所包含的密文字符串并不是完整的密文字符串,而是截取得到的残缺的字符串,相对于通过单一加密算法进行加密后得到的完整密文字符串而言,可有效防止加密结果被碰撞攻击、暴力攻击或彩虹表比对攻击进行破解,从而提高了加密结果的安全性。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1