检测弱密码的方法及装置与流程

    专利2022-07-08  104


    本说明书涉及信息安全技术领域,特别涉及检测弱密码的方法及装置。



    背景技术:

    随着计算机的功能越来越多样化,在计算机上可执行的操作也越来越多,其中的某些操作可能会涉及到用户的信息,为了保证信息安全,通常需要设置各种密码,但如果密码被破解,可能会导致信息被盗取,从而给用户带来相应的损失。因此,需要对设置的密码进行检测,以便确定该密码是否为弱密码。

    现有技术中通常是基于正则表达式的方法对密码进行检测。具体地,可以根据待检测密码的长度和所使用的字符类型(例如大写字母、小写字母、数字、或符号)等简单的规则,来对密码进行检测,进而评估该待检测密码是否为弱密码。对于这种方式,待检测密码的长度越长、字符类型越多,则待检测密码为弱密码的概率越小。

    但上述方式主要是基于人为设置的规则进行机械测试,局限性较大,若用户避开规则设置密码,则计算设备可能无法将某些弱密码识别出来,在这种情况下,若用户继续使用该弱密码,依然会存在信息安全的问题。



    技术实现要素:

    有鉴于此,本说明书实施例提供了一种检测弱密码的方法。本说明书同时涉及一种检测弱密码的装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。

    根据本说明书实施例的第一方面,提供了一种检测弱密码的方法,包括:

    获取输入的账号,将所述账号存储至密码库中,其中,所述密码库中包括已知为弱密码的至少一个参考密码;

    获取所述账号对应的待检测密码,并对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值;

    将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,若存在与所述第一哈希值相似的所述第二哈希值,则确定所述待检测密码为弱密码。

    可选地,所述对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值,包括:

    对所述待检测密码进行分词处理,得到多个词单元,且设置每个词单元的权重;

    通过哈希运算确定每个词单元的哈希值;

    基于每个词单元的哈希值和权重,确定所述待检测密码的第一哈希值。

    可选地,所述基于每个词单元的哈希值和权重,确定所述待检测密码的第一哈希值,包括:

    将每个词单元的哈希值和权重相乘,得到每个词单元的加权值,其中,每个词单元的加权值中包括的字符的数量相同;

    将多个词单元的加权值中位于相同位置的字符相加,得到所述待检测密码的合并加权值;

    对所述合并加权值进行降维处理,得到所述第一哈希值,其中,所述第一哈希值包括的字符的数量与每个词单元的加权值中包括的字符的数量相同。

    可选地,所述对所述合并加权值进行降维处理,包括:

    若所述合并加权值中目标位置处的字符大于0,将所述目标位置处的字符替换为1,其中,所述目标位置为所述合并加权值中的任一位置;

    若所述合并加权值中所述目标位置处的字符小于或等于0,将所述目标位置处的字符替换为0。

    可选地,所述将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,包括:

    确定所述第一哈希值与每个第二哈希值之间的目标距离,得到多个目标距离;

    基于所述多个目标距离确定所述第一哈希值与每个第二哈希值之间的相似度。

    可选地,所述将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算之前,还包括:

    获取所述密码库中存储的至少一个参考密码;

    对所述至少一个参考密码进行哈希运算,确定所述至少一个参考密码的第二哈希值。

    可选地,所述方法还包括:

    若不存在与所述第一哈希值相似的所述第二哈希值,确定所述待检测密码不是弱密码。

    可选地,所述存在与所述第一哈希值相似的所述第二哈希值,包括:

    若存在与所述第一哈希值的相似度大于相似度阈值的所述第二哈希值,确定存在与所述第一哈希值相似的所述第二哈希值。

    根据本说明书实施例的第二方面,提供了一种检测弱密码的装置,包括:

    第一获取模块,用于获取输入的账号,将所述账号存储至密码库中,其中,所述密码库中包括已知为弱密码的至少一个参考密码;

    第二获取模块,用于获取所述账号对应的待检测密码,并对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值;

    确定模块,用于将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,若存在与所述第一哈希值相似的所述第二哈希值,则确定所述待检测密码为弱密码。

    根据本说明书实施例的第三方面,提供了一种计算设备,包括:

    存储器和处理器;

    所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:

    获取输入的账号,将所述账号存储至密码库中,其中,所述密码库中包括已知为弱密码的至少一个参考密码;

    获取所述账号对应的待检测密码,并对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值;

    将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,若存在与所述第一哈希值相似的所述第二哈希值,则确定所述待检测密码为弱密码。

    根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述检测弱密码的方法的步骤。

    本说明书提供的检测弱密码的方法,可以获取输入的账号并将该账号存储至密码库中,获取该账号对应的待检测密码,对该待检测密码进行哈希运算,得到该待检测密码的第一哈希值。将该第一哈希值与密码库中的至少一个参考密码的第二哈希值进行相似度计算,由于密码库中包括的至少一个参考密码已知为弱密码,若存在与该第一哈希值相似的第二哈希值,说明密码库中存在与该待检测密码相似的参考密码,即待检测密码与弱密码相似,因此可以确定该待检测密码为弱密码。上述方式根据参考密码的哈希值与待检测密码的哈希值确定待检测密码是否为弱密码,不依赖规则,检测方式更加灵活,能够更加准确地识别出弱密码,从而保证信息安全。

    附图说明

    图1是本说明书一实施例提供的一种检测弱密码的方法的流程图;

    图2是本说明书一实施例提供的一种应用于密码设置场景的检测弱密码的方法的处理流程图;

    图3是本说明书一实施例提供的一种检测弱密码的装置的结构示意图;

    图4是本说明书一实施例提供的一种计算设备的结构框图。

    具体实施方式

    在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

    在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

    应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

    首先,对本说明书一个或多个实施例涉及的名词术语进行解释。

    密码:用于验证账号权限的凭证。

    弱密码:安全等级低、容易被破译的密码,多为简单的数字组合、账号相同的数字组合、键盘上的临近键或常见姓名等。

    哈希:hash,又称为散列函数,是把将任意长度的消息压缩到某一固定长度的消息摘要的函数,其可以将任意数据通过一个函数转换成长度固定的数据串,函数与数据串之间形成一一映射的关系。

    词单元:可以为密码中的单个字母、数字或符号,或者,可以为密码中的词语或英文单词。

    lsh算法:(locality-sensitivehashing,局部敏感哈希),是一种针对海量高位数据的快速最近邻查找算法,其可以使得两个相似度很高的数据以较高的概率映射成同一个哈希值,而两个相似度很低的数据以极低的概率映射成同一个哈希值。

    simhash算法:主要是将文本进行降维,生成一个simhash值,通过对不同文本的simhash值进而比较汉明距离,从而判断两个文本的相似度。

    汉明距离:hammingdistance,一种根据点的属性计算距离的方法,主要计算两个长度相同的字符串对应位字符不同的个数。

    在本说明书中,提供了一种检测弱密码的方法,本说明书同时涉及一种检测弱密码的装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

    图1示出了根据本说明书一实施例提供的一种检测弱密码的方法的流程图,具体包括以下步骤:

    步骤102,获取输入的账号,将该账号存储至密码库中,其中,该密码库中包括已知为弱密码的至少一个参考密码。

    在实施中,用户可以自行设置账号,并输入至计算设备中。计算设备中配置有密码库,该密码库用于存储已知的弱密码。为了便于描述,可以将密码库中存储的已知的弱密码称为参考密码。

    作为一种示例,该密码库中可以包括重复式参考密码,例如aabbcc123,键盘式参考密码,例如1qaz2wsx,连续数字或字母参考密码,例如ali123456、qwertyuiop,包含用户名的参考密码,例如用户名为zhangsan,密码为zhangsan123等等比较常用的弱密码,本申请实施例对此不做限定。

    由于有些用户可能会在账号的基础上设置密码,例如,在账号后面加若干个数字或字母,甚至可能直接将账号作为密码,这样的操作是非常有风险的,对于知道账号的恶意用户,可能容易想到该密码,导致密码很容易被破解。因此,计算设备获取到输入的账号后,可以将该账号存储至密码库中,将该账号也作为参考密码,可以避免上述情况的出现。

    需要说明的是,若该至少一个参考密码的数量为一个,则该至少一个参考密码为输入的账号,若该至少一个参考密码的数量为多个,则除去输入的账号,其他的参考密码可以是基于大量的实践获取到且预先存储在密码库中。

    步骤104,获取该账号对应的待检测密码,并对该待检测密码进行哈希运算,得到该待检测密码的第一哈希值。

    在实施中,用户输入账号后,需要为该账号设置对应的密码,为了保证用户信息的安全,计算设备需要获取设置的密码,将该密码作为待检测密码进行检测,以保证该账号对应的待检测密码的安全性足够高。

    由于待检测密码和参考密码均可以包括多个字符,且参考密码包括的字符数量与待检测密码包括的字符数量可能不同,在这种情况下,很难基于参考密码对待检测密码进行检测。因此,可以通过哈希运算,将待检测密码转换为长度固定的字符串,即确定待检测密码的哈希值,由于哈希值的长度可以设置,因此,可以基于同样的方法将参考密码转换成与待检测密码的哈希值等长的哈希值,如此,可以便于基于参考密码对待检测密码进行检测。

    作为一种示例,可以采用lsh算法对待检测密码进行哈希运算,通过lsh算法可以降低待检测密码的维度,进而对高维的待检测密码进行高效的哈希处理。进一步地,可以采用lsh算法中的simhash算法进行具体的哈希运算,能够对数据进行降维,进而减少对计算设备存储空间的占用。

    在实施中,对该待检测密码进行哈希运算,得到该待检测密码的第一哈希值的具体实现可以包括:对该待检测密码进行分词处理,得到多个词单元,且设置每个词单元的权重,通过哈希运算确定每个词单元的哈希值,基于每个词单元的哈希值和权重,确定该待检测密码的第一哈希值。

    也就是说,由于待检测密码包括的字符可能比较多,因此可以先对待检测密码进行分词,得到多个词单元,并设置每个词单元的权重,在确定多个词单元的哈希值之后,根据多个词单元的权重和哈希值确定待检测密码的哈希值。

    在一些实施例中,若待检测密码中包括英文单词,可以将英文单词单独作为一个词单元,若待检测密码中包括拼音组成的词语,可以将词语作为一个词单元,若待检测密码中包括多个无关联关系的字符,可以将单个字符单独作为一个词单元。

    例如,若密码为ali456password,则分词可以得到5个词单元,分别为ali,4,5,6,password。若密码为1qaz-2wsx,则分词可以得到9个词单元,分别为1,q,a,z,-,2,w,s,x。若密码为mimaiszhanghao,则分词可以得到3个词单元,分别为mima,is,zhanghao。

    在一些实施例中,可以随机设置每个词单元的权重,并且设置英文单词或词语的权重大于单个字符的权重。或者,若待检测密码为句子,可根据词单元在句子中的结构为词单元设置权重。例如,可以设置主语和宾语的权重大于谓语。

    例如,若密码为ali456password,词单元包括ali,4,5,6和password,可以设置ali的权重为5,4的权重为2,5的权重为2,6的权重为2,password的权重为6,保证单个数字4、5、6的权重小于词语ali和英文单词password的权重。若密码为1qaz-2wsx,词单元可以包括1,q,a,z,-,2,w,s,x,可以随机设置该9个词单元的权重均为1。若密码为mimaiszhanghao,词单元可以包括mima,is,zhanghao,可以设置mima的权重为5,is的权重为2,zhanghao的权重为6。

    在一些实施例中,可以通过哈希函数,对每个词单元进行映射,产生一个n位二进制串,得到每个词单元的哈希值,即哈希值可以为二进制01组成的n位字符串。其中,n可以为大于1的正整数。例如,mima的哈希值可以为10010,is的哈希值可以为10100,zhanghao的哈希值可以为01001。

    在一些实施例中,基于每个词单元的哈希值和权重,确定该待检测密码的第一哈希值的具体实现可以包括:将每个词单元的哈希值和权重相乘,得到每个词单元的加权值,其中,每个词单元的加权值中包括的字符的数量相同。将多个词单元的加权值中位于相同位置的字符相加,得到该待检测密码的合并加权值。对该合并加权值进行降维处理,得到第一哈希值,其中,该第一哈希值包括的字符的数量与每个词单元的加权值中包括的字符的数量相同。

    也就是说,可以基于每个词单元的权重,对多个词单元的哈希值进行加权求和,得到待检测密码的合并加权值,对合并加权值进行降维处理,可以得到第一哈希值。

    作为一种示例,将词单元的哈希值和权重相乘时,哈希值中为0的与权重相乘后取权重负值,哈希值中为1的与权重相乘后取权重正值。

    示例性地,假设待检测密码为mimaiszhanghao,词单元mima的哈希值为10010,权重为5,词单元is的哈希值为10100,权重为2,词单元zhanghao的哈希值为01001,权重为6。则可以将10010和5相乘,得到词单元mima的加权值为(5,-5,-5,5,-5),将10100和2相乘,可以得到词单元is的加权值为(2,-2,2,-2,-2),将01001和6相乘,可以得到词单元zhanghao的加权值为(-6,6,-6,-6,6)。

    继续上述举例,将该三个词单元的加权值中相同位置的字符相加。具体地,5 2-6=1,-5-2 6=-1,-5 2-6=-9,5-2-6=-3,-5-2 6=-1,可以确定合并加权值为(1,-1,-9,-3,-1)。由此可见,合并加权值中包括的字符的数量与词单元的加权值中包括的字符的数量相同。

    进一步地,对每个词单元进行哈希运算之前,可以设置哈希值的位数,保证每个词单元的哈希值的位数相同,即每个词单元的哈希值中包括的字符的数量相同,可以便于进行后续的加权计算。

    另外,由于词单元的加权值的计算并没有更改词单元的哈希值的位数,因此,可以保证每个词单元的加权值中包括的字符的数量相同。

    在一些实施例中,对合并加权值进行降维处理的具体实现可以包括:若该合并加权值中目标位置处的字符大于0,将目标位置处的字符替换为1,其中,该目标位置为该合并加权值中的任一位置。若该合并加权值中该目标位置处的字符小于或等于0,将该目标位置处的字符替换为0。

    也就是说,根据合并加权值中每个位置处的字符与1的大小关系,确定需要将每个位置处的字符更换为1或0。

    例如,假设合并加权值为(1,-1,-9,-3,-1),若目标位置为第一个位置,则目标位置处的字符为1,可以将第一个位置处的字符1替换为1,若目标位置为第三个位置,则目标位置处的字符为-9,可以将第三个位置处的字符-9替换为0。以此类推,可以确定该待检测密码的第一哈希值为10000。

    步骤106,将第一哈希值与至少一个参考密码的第二哈希值进行相似度计算,若存在与该第一哈希值相似的第二哈希值,则确定该待检测密码为弱密码。

    也就是说,可以确定第一哈希值与至少一个参考密码的第二哈希值的相似度,基于相似度确定是否存在与第一哈希值相似的第二哈希值,若是,说明存在与待检测密码相似的参考密码,即待检测密码与已知的弱密码相似,则可以认为待检测密码为弱密码。

    进一步地,在进行相似度计算之前,需要获取至少一个参考密码的第二哈希值,具体可以包括如下两种可能的实现方式。

    第一种实现方式:计算设备中配置有哈希值库,该哈希值库中可以存储有密码库中至少一个参考密码的第二哈希值,如此,可以从哈希值库中获取至少一个参考密码的第二哈希值。

    也就是说,可以预先确定密码库中存储的至少一个参考密码的第二哈希值,并存储至密码库中,在进行相似度计算之前,可以从密码库中获取。

    第二种实现方式:获取所述密码库中存储的至少一个参考密码,对所述至少一个参考密码进行哈希运算,确定所述至少一个参考密码的第二哈希值。

    为了便于描述,对于至少一个参考密码中的任一参考密码,可以称为目标参考密码。

    示例性地,从密码库中获取至少一个参考密码后,可以对目标参考密码进行分词处理,得到多个词单元,且设置每个词单元的权重,并通过哈希函数对每个词单元进行映射,得到每个词单元的哈希值。将每个词单元的哈希值和权重相乘,得到每个词单元的加权值,每个词单元的加权值中包括多个字符,将多个词单元的加权值中位于相同位置的字符相加,可以得到该目标参考密码的合并加权值,对合并加权值进行降维处理后,可以得到第二哈希值。

    需要说明的是,上述确定至少一个参考密码的第二哈希值的实现方式与步骤104确定待检测密码的第一哈希值的实现方式雷同,具体可参见步骤104的相关描述,本申请实施例对此不再赘述。

    进一步地,确定至少一个参考密码的第二哈希值后,可以将确定的第二哈希值存储至哈希库中,以便于下次进行弱密码检测时可以从哈希库中获取第二哈希值,不需要重新对密码库中的参考密码进行哈希运算,可以减少计算设备的计算量。

    在实施中,将第一哈希值与至少一个参考密码的第二哈希值进行相似度计算的具体实现可以包括:确定该第一哈希值与每个第二哈希值之间的目标距离,得到多个目标距离。基于该多个目标距离确定该第一哈希值与每个第二哈希值之间的相似度。

    其中,目标距离与相似度呈负相关,即目标距离越大,相似度越低,目标距离越小,相似度越高。

    需要说明的是,目标距离可以为汉明距离等可以用于表征数据之间相似度的距离,本申请实施例对此不作限定。

    另外,相比于现有技术根据余弦相似度确定文本之间的相似度,本申请实施例确定哈希值之间的汉明距离,计算复杂度较低,因此消耗的时间比较短,可以提高相似计算的效率,进而提高检测弱密码的效率。

    作为一种示例,若目标距离为汉明距离,假设待检测密码的第一哈希值为1011101,某一参考密码的第二哈希值为1001001,第一哈希值和第二哈希值的第三位字符不同,且第一哈希值和第二哈希值的第五位字符不同,可以确定汉明距离为2,即目标距离为2。

    作为一种示例,可以将每个目标距离的倒数确定为第一哈希值与每个第二哈希值之间的相似度。例如,若目标距离为2,可以确定相似度为0.5。

    在实施中,确定第一哈希值与每个第二哈希值的相似度之后,可以将每个相似度与相似度阈值进行比较,若存在与该第一哈希值的相似度大于相似度阈值的第二哈希值,确定存在与该第一哈希值相似的第二哈希值。

    需要说明的是,相似度阈值可以由用户根据实际需求进行设置,也可以由计算设备默认设置,本申请实施例对此不做限定。另外,通常情况下,汉明距离小于3可以确定两个密码相似,因此,可以将相似度阈值设置为0.3。

    也就是说,如果至少一个第二哈希值中存在与第一哈希值的相似度大于相似度阈值的第二哈希值,可以确定存在与第一哈希值相似的第二哈希值。

    在实施中,确定该待检测密码为弱密码后,可以通过弹窗或其他方式提醒用户重新设置密码,直到获取到的账号对应的待检测密码不是弱密码,以便于保证信息安全。

    进一步地,若不存在与该第一哈希值相似的第二哈希值,确定该待检测密码不是弱密码。

    也就是说,如果至少一个参考密码的第二哈希值均与该第一哈希值不相似,可以确定待检测密码与密码库中的参考密码均不相似,可以认为该待检测密码不是弱密码。

    现有技术中基于概率的弱密码识别方法比较复杂,对于大部分未出现在数据库中的密码无法正确地估计其出现的概率。而本说明书实施例中,通过目标距离来度量待检测密码与参考密码的相似度,只需要少数比较典型的参考密码,即可以准确地识别出各种类型的弱密码,比基于概率的弱密码识别方法简单,更加适合进行密码强度评估和弱密码检测。

    另外,本申请采用相似度检测的方式来快速检测弱密码,与语言类型没有强关联关系,相较只适用于英文密码检测的基于攻击的弱密码识别方法,更加灵活。

    本说明书提供的检测弱密码的方法,可以获取输入的账号并将该账号存储至密码库中,获取该账号对应的待检测密码,对该待检测密码进行哈希运算,得到该待检测密码的第一哈希值。将该第一哈希值与密码库中的至少一个参考密码的第二哈希值进行相似度计算,由于密码库中包括的至少一个参考密码已知为弱密码,若存在与该第一哈希值相似的第二哈希值,说明密码库中存在与该待检测密码相似的参考密码,即待检测密码与弱密码相似,因此可以确定该待检测密码为弱密码。上述方式根据参考密码的哈希值与待检测密码的哈希值确定待检测密码是否为弱密码,不依赖规则,检测方式更加灵活,能够更加准确地识别出弱密码,从而保证信息安全。

    下述结合附图2,以本说明书提供的检测弱密码的方法在密码设置场景的应用为例,对所述检测弱密码的方法进行进一步说明。其中,图2示出了本说明书一实施例提供的一种应用于密码设置场景的检测弱密码的方法的处理流程图,具体包括以下步骤:

    步骤202,获取输入的账号。

    例如,用户注册某平台的账号,且账号为xiaolu。

    步骤204,将该账号存储至密码库中,其中,该密码库中包括已知为弱密码的至少一个参考密码。

    由于有些用户会基于账号设置密码,为了避免这种情况导致的信息泄露,可以将账号存储至密码库中作为参考密码。

    需要说明的是,上述步骤202-步骤204是步骤102的下位描述。

    步骤206,获取该账号对应的待检测密码。

    例如,假设待检测密码为xiaolu777。

    步骤208,对该待检测密码进行分词处理,得到多个词单元,且设置每个词单元的权重。

    继续上述举例,假设对待检测密码xiaolu777进行分词处理,可以得到4个词单元,分别为xiaolu,7,7,7,可以设置xiaolu的权重为6,剩余三个7的权重均为2。

    步骤210,通过哈希运算确定每个词单元的哈希值。

    继续上述举例,假设通过simhash算法可以确定xiaolu的哈希值为11010,三个7的哈希值均为01010。

    步骤212,将每个词单元的哈希值和权重相乘,得到每个词单元的加权值,其中,每个词单元的加权值中包括的字符的数量相同。

    继续上述举例,假设xiaolu的权重为6,哈希值为11010,剩余三个7的权重均为2,哈希值均为01010,可以确定xiaolu的加权值为(6,6,-6,6,-6),剩余三个7的加权值均为(-2,2,-2,2,-2)。

    步骤214,将多个词单元的加权值中位于相同位置的字符相加,得到该待检测密码的合并加权值。

    继续上述举例,假设xiaolu的加权值为(6,6,-6,6,-6),剩余三个7的加权值均为(-2,2,-2,2,-2),可以确定合并加权值为(0,12,-12,12,-12)。

    步骤216,对该合并加权值进行降维处理,得到该第一哈希值,其中,该第一哈希值包括的字符的数量与每个词单元的加权值中包括的字符的数量相同。

    在实施中,若合并加权值中目标位置处的字符大于0,将该目标位置处的字符替换为1,其中,该目标位置为该合并加权值中的任一位置。若合并加权值中该目标位置处的字符小于或等于0,将该目标位置处的字符替换为0。

    继续上述举例,假设合并加权值为(0,12,-12,12,-12),可以确定第一哈希值为010101。

    需要说明的是,步骤206-步骤216是对步骤104的下位描述,因此,步骤206-步骤216的具体实现均可以参见步骤104的相关描述,本申请实施例对此不再赘述。

    步骤218,获取该密码库中存储的至少一个参考密码。

    需要说明的是,步骤218与上述步骤214没有严格的先后执行顺序。

    步骤220,对该至少一个参考密码进行哈希运算,确定该至少一个参考密码的第二哈希值。

    例如,假设至少一个参考密码包括xiaolu,aabb123,1qaz2wsx,qwertyuiop,ali123456,可以确定xiaolu的第二哈希值为010110,aabb123的第二哈希值为101001,1qaz2wsx的第二哈希值为100000,qwertyuiop的第二哈希值为011010,ali123456的第二哈希值为111011。

    需要说明的是,本步骤的具体实现可以参见步骤106中获取至少一个参考密码的第二哈希值的相关描述,本申请实施例对此不再赘述。

    步骤222,将该第一哈希值与该至少一个参考密码的第二哈希值进行相似度计算。

    在实施中,可以确定该第一哈希值与每个第二哈希值之间的目标距离,得到多个目标距离基于多个目标距离确定第一哈希值与每个第二哈希值之间的相似度。

    以目标距离为汉明距离为例,假设待检测密码xiaolu777的第一哈希值为010101,xiaolu的第二哈希值为010110,aabb123的第二哈希值为101001,1qaz2wsx的第二哈希值为100000,qwertyuiop的第二哈希值为011010,ali123456的第二哈希值为111110,可以确定xiaolu777与xiaolu的汉明距离为2,aabb123与xiaolu的汉明距离为4,1qaz2wsx与xiaolu的汉明距离为4,qwertyuiop与xiaolu的汉明距离4,ali123456与xiaolu的汉明距离为4。进一步,可以确定xiaolu777与xiaolu的相似度为0.5,aabb123与xiaolu的相似度为0.25,1qaz2wsx与xiaolu的相似度为0.25,qwertyuiop与xiaolu的相似度0.25,ali123456与xiaolu的相似度为0.25。

    步骤224,若存在与该第一哈希值的相似度大于相似度阈值的第二哈希值,确定存在与该第一哈希值相似的第二哈希值,确定该待检测密码为弱密码。

    需要说明的是,相似度阈值可以由用户根据实际需求进行设置,也可以由计算设备默认设置,本申请实施例对此不做限定。

    继续上述举例,假设相似度阈值为0.3,可以确定第二哈希值010110与第一哈希值010101的相似度大于相似度阈值,由于第二哈希值010110是参考密码xiaolu的第二哈希值,因此,可以认为参考密码xiaolu与待检测密码xiaolu77相似,则可以确定该待检测密码为弱密码。

    需要说明的是,步骤222-步骤224是对上述步骤106的下位描述,因此,步骤222-步骤224的具体实现可以参见步骤106的相关描述,本申请实施例在此不再赘述。

    步骤226,若不存在与该第一哈希值相似的该第二哈希值,则确定该待检测密码不是弱密码。

    本说明书提供的检测弱密码的方法,可以获取输入的账号并将该账号存储至密码库中,获取该账号对应的待检测密码,对该待检测密码进行哈希运算,得到该待检测密码的第一哈希值。将该第一哈希值与密码库中的至少一个参考密码的第二哈希值进行相似度计算,由于密码库中包括的至少一个参考密码已知为弱密码,若存在与该第一哈希值相似的第二哈希值,说明密码库中存在与该待检测密码相似的参考密码,即待检测密码与弱密码相似,因此可以确定该待检测密码为弱密码。上述方式根据参考密码的哈希值与待检测密码的哈希值确定待检测密码是否为弱密码,不依赖规则,检测方式更加灵活,能够更加准确地识别出弱密码,从而保证信息安全。

    与上述方法实施例相对应,本说明书还提供了检测弱密码的装置实施例,图3示出了本说明书一实施例提供的一种检测弱密码的装置的结构示意图。如图3所示,该装置包括:

    第一获取模块302,用于获取输入的账号,将所述账号存储至密码库中,其中,所述密码库中包括已知为弱密码的至少一个参考密码;

    第二获取模块304,用于获取所述账号对应的待检测密码,并对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值;

    确定模块306,用于将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,若存在与所述第一哈希值相似的所述第二哈希值,则确定所述待检测密码为弱密码。

    可选地,所述第二获取模块304用于:

    对所述待检测密码进行分词处理,得到多个词单元,且设置每个词单元的权重;

    通过哈希运算确定每个词单元的哈希值;

    基于每个词单元的哈希值和权重,确定所述待检测密码的第一哈希值。

    可选地,所述第二获取模块304用于:

    将每个词单元的哈希值和权重相乘,得到每个词单元的加权值,其中,每个词单元的加权值中包括的字符的数量相同;

    将多个词单元的加权值中位于相同位置的字符相加,得到所述待检测密码的合并加权值;

    对所述合并加权值进行降维处理,得到所述第一哈希值,其中,所述第一哈希值包括的字符的数量与每个词单元的加权值中包括的字符的数量相同。

    可选地,所述第二获取模块304用于:

    若所述合并加权值中目标位置处的字符大于0,将所述目标位置处的字符替换为1,其中,所述目标位置为所述合并加权值中的任一位置;

    若所述合并加权值中所述目标位置处的字符小于或等于0,将所述目标位置处的字符替换为0。

    可选地,所述确定模块306,用于:

    确定所述第一哈希值与每个第二哈希值之间的目标距离,得到多个目标距离;

    基于所述多个目标距离确定所述第一哈希值与每个第二哈希值之间的相似度。

    可选地,所述确定模块306,还用于:

    获取所述密码库中存储的至少一个参考密码;

    对所述至少一个参考密码进行哈希运算,确定所述至少一个参考密码的第二哈希值。

    可选地,所述确定模块306,还用于:

    若不存在与所述第一哈希值相似的所述第二哈希值,确定所述待检测密码不是弱密码。

    可选地,所述确定模块306,用于:

    若存在与所述第一哈希值的相似度大于相似度阈值的所述第二哈希值,确定存在与所述第一哈希值相似的所述第二哈希值。

    本说明书提供的检测弱密码的方法,可以获取输入的账号并将该账号存储至密码库中,获取该账号对应的待检测密码,对该待检测密码进行哈希运算,得到该待检测密码的第一哈希值。将该第一哈希值与密码库中的至少一个参考密码的第二哈希值进行相似度计算,由于密码库中包括的至少一个参考密码已知为弱密码,若存在与该第一哈希值相似的第二哈希值,说明密码库中存在与该待检测密码相似的参考密码,即待检测密码与弱密码相似,因此可以确定该待检测密码为弱密码。上述方式根据参考密码的哈希值与待检测密码的哈希值确定待检测密码是否为弱密码,不依赖规则,检测方式更加灵活,能够更加准确地识别出弱密码,从而保证信息安全。

    上述为本实施例的一种检测弱密码的装置的示意性方案。需要说明的是,该检测弱密码的装置的技术方案与上述的检测弱密码的方法的技术方案属于同一构思,检测弱密码的装置的技术方案未详细描述的细节内容,均可以参见上述检测弱密码的方法的技术方案的描述。

    图4示出了根据本说明书一实施例提供的一种计算设备400的结构框图。该计算设备400可以为终端,也可以为服务器。该计算设备400的部件包括但不限于存储器410和处理器420。处理器420与存储器410通过总线430相连接,数据库450用于保存数据。

    计算设备400还包括接入设备440,接入设备440使得计算设备400能够经由一个或多个网络460通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备440可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

    在本说明书的一个实施例中,计算设备400的上述部件以及图4中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图4所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

    计算设备400可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备400还可以是移动式或静止式的服务器。

    其中,处理器420用于执行如下计算机可执行指令:

    获取输入的账号,将所述账号存储至密码库中,其中,所述密码库中包括已知为弱密码的至少一个参考密码;

    获取所述账号对应的待检测密码,并对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值;

    将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,若存在与所述第一哈希值相似的所述第二哈希值,则确定所述待检测密码为弱密码。

    上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的检测弱密码的方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述检测弱密码的方法的技术方案的描述。

    本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:

    获取输入的账号,将所述账号存储至密码库中,其中,所述密码库中包括已知为弱密码的至少一个参考密码;

    获取所述账号对应的待检测密码,并对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值;

    将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,若存在与所述第一哈希值相似的所述第二哈希值,则确定所述待检测密码为弱密码。

    上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的检测弱密码的方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述检测弱密码的方法的技术方案的描述。

    上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

    所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

    需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。

    在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

    以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。


    技术特征:

    1.一种检测弱密码的方法,其特征在于,所述方法包括:

    获取输入的账号,将所述账号存储至密码库中,其中,所述密码库中包括已知为弱密码的至少一个参考密码;

    获取所述账号对应的待检测密码,并对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值;

    将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,若存在与所述第一哈希值相似的所述第二哈希值,则确定所述待检测密码为弱密码。

    2.如权利要求1所述的检测弱密码的方法,其特征在于,所述对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值,包括:

    对所述待检测密码进行分词处理,得到多个词单元,且设置每个词单元的权重;

    通过哈希运算确定每个词单元的哈希值;

    基于每个词单元的哈希值和权重,确定所述待检测密码的第一哈希值。

    3.如权利要求2所述的检测弱密码的方法,其特征在于,所述基于每个词单元的哈希值和权重,确定所述待检测密码的第一哈希值,包括:

    将每个词单元的哈希值和权重相乘,得到每个词单元的加权值,其中,每个词单元的加权值中包括的字符的数量相同;

    将多个词单元的加权值中位于相同位置的字符相加,得到所述待检测密码的合并加权值;

    对所述合并加权值进行降维处理,得到所述第一哈希值,其中,所述第一哈希值包括的字符的数量与每个词单元的加权值中包括的字符的数量相同。

    4.如权利要求3所述的检测弱密码的方法,其特征在于,所述对所述合并加权值进行降维处理,包括:

    若所述合并加权值中目标位置处的字符大于0,将所述目标位置处的字符替换为1,其中,所述目标位置为所述合并加权值中的任一位置;

    若所述合并加权值中所述目标位置处的字符小于或等于0,将所述目标位置处的字符替换为0。

    5.如权利要求1所述的检测弱密码的方法,其特征在于,所述将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,包括:

    确定所述第一哈希值与每个第二哈希值之间的目标距离,得到多个目标距离;

    基于所述多个目标距离确定所述第一哈希值与每个第二哈希值之间的相似度。

    6.如权利要求1所述的检测弱密码的方法,其特征在于,所述将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算之前,还包括:

    获取所述密码库中存储的至少一个参考密码;

    对所述至少一个参考密码进行哈希运算,确定所述至少一个参考密码的第二哈希值。

    7.如权利要求1所述的检测弱密码的方法,其特征在于,所述方法还包括:

    若不存在与所述第一哈希值相似的所述第二哈希值,确定所述待检测密码不是弱密码。

    8.如权利要求1所述的检测弱密码的方法,其特征在于,所述存在与所述第一哈希值相似的所述第二哈希值,包括:

    若存在与所述第一哈希值的相似度大于相似度阈值的所述第二哈希值,确定存在与所述第一哈希值相似的所述第二哈希值。

    9.一种检测弱密码的装置,包括:

    第一获取模块,用于获取输入的账号,将所述账号存储至密码库中,其中,所述密码库中包括已知为弱密码的至少一个参考密码;

    第二获取模块,用于获取所述账号对应的待检测密码,并对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值;

    确定模块,用于将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,若存在与所述第一哈希值相似的所述第二哈希值,则确定所述待检测密码为弱密码。

    10.一种计算设备,包括:

    存储器和处理器;

    所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:

    获取输入的账号,将所述账号存储至密码库中,其中,所述密码库中包括已知为弱密码的至少一个参考密码;

    获取所述账号对应的待检测密码,并对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值;

    将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,若存在与所述第一哈希值相似的所述第二哈希值,则确定所述待检测密码为弱密码。

    11.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至8任意一项所述检测弱密码的方法的步骤。

    技术总结
    本说明书提供检测弱密码的方法及装置,其中,所述方法包括:获取输入的账号,将所述账号存储至密码库中,其中,所述密码库中包括已知为弱密码的至少一个参考密码;获取所述账号对应的待检测密码,并对所述待检测密码进行哈希运算,得到所述待检测密码的第一哈希值;将所述第一哈希值与所述至少一个参考密码的第二哈希值进行相似度计算,若存在与所述第一哈希值相似的所述第二哈希值,则确定所述待检测密码为弱密码。上述方式根据参考密码的哈希值与待检测密码的哈希值确定待检测密码是否为弱密码,不依赖规则,检测方式更加灵活,能够更加准确地识别出弱密码,从而保证信息安全。

    技术研发人员:汪淮炜
    受保护的技术使用者:杭州橙鹰数据技术有限公司
    技术研发日:2020.11.30
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-21061.html

    最新回复(0)