一种密码存储及验证的方法和装置制造方法
【专利摘要】本发明实施例提供了一种密码存储及验证的方法和装置,所述方法包括:获取用户的身份认证信息;在所述身份认证信息中添加预设参数形成字符串;采用所述字符串进行哈希运算,获得特征值;从所述特征值中提取指定位置的数据作为加密数据。本发明可以增强用户密码的复杂程度,从而加强用户密码的防御能力,同时,避免或减少哈希碰撞,从而降低密码被破解的概率,确保用户密码不被泄漏。
【专利说明】—种密码存储及验证的方法和装置
【技术领域】
[0001]本发明涉及信息安全【技术领域】,特别是涉及一种密码存储方法,一种密码验证方法,一种密码存储装置和一种密码验证装置。
【背景技术】
[0002]随着信息化建设的发展,信息安全逐渐成为犹为重要的问题。网络环境下的信息安全体系是保证信息安全的关键。
[0003]在计算机服务中,最常见也是最基本的用户登录访问控制方法是“用户名/密码”的方式,即:用户在需要使用某项服务时,首先要注册一个用户名,并设定一个与之对应的密码,服务提供方将该用户的用户名/密码存储到“用户信息数据库”中。用户登录时,用户将用户名和密码提交给服务器进行鉴权,服务器通过调取用户信息数据库中的用户名和密码进行比对,决定是否登录成功,进而提供服务。这种直接用明文存储用户和密码的方式是极不安全:
[0004]首先,用户信息数据库容易被攻击,当攻击者入侵到用户信息数据库时,所有密码将全部泄密,后果将是灾难性的;
[0005]其次,服务的开发管理员可以接触所有用户的密码,他们可以未经用户授权使用任何账号进行登录,或者有意无意将密码泄露出去。
[0006]为了解决上述问题,大多数的服务提供方会采用加密的方式存储用户名密码,最常用的的方式是:通过哈希函数,将用户的密码转换成哈希值,再存入数据库,用户登录时,输入用户名/密码,服务提供方比较用户名和密码的哈希值,如果匹配,允许用户登录并提供服务。这种方式避免了明文存储密码,从一定程度上保障了用户密码安全,但仍然存在以下问题:
[0007]哈希函数虽然是一个“单向函数”,攻击者很难通过哈希值反推出原值,但是攻击者可以通过构建一个密码-哈希值关系表,通过该表反查用户密码。由于用户密码通常都是6到8位的数字,穷举所有6位数字组合,数据量也就是百万级别,穷举6为字母数字组合,数据量也不过10亿级别。这对攻击者来说并非难事。因此,直接哈希用户密码,对于简单密码来说,防御能力不是很强。
[0008]其次,目前常用的哈希算法,例如MD5,SHA-1等,均存在碰撞问题,即:不同的密码拥有相同的哈希值。这样,即使用户采用较复杂的密码,如果其哈希值与攻击者所拥有的密码-哈希值关系表中的一条记录的哈希值发生碰撞,其密码同样遭到破解。不幸的是,攻击者往往掌握大量易发生碰撞的哈希值。
[0009]因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提供一种密码存储及验证的方法和装置,用以增强用户密码的复杂程度,从而加强用户密码的防御能力,同时,避免或减少哈希碰撞,从而降低密码被破解的概率,确保用户密码不被泄漏。
【发明内容】
[0010]本发明实施例所要解决的技术问题是提供提供一种密码存储及验证的方法,用以增强用户密码的复杂程度,从而加强用户密码的防御能力,同时,避免或减少哈希碰撞,从而降低密码被破解的概率,确保用户密码不被泄漏。
[0011]相应的,本发明实施例还提供了一种密码存储及验证的装置,用以保证上述方法的实现及应用。
[0012]为了解决上述问题,本发明公开了一种密码存储的方法,包括:
[0013]获取用户的身份认证信息;
[0014]在所述身份认证信息中添加预设参数形成字符串;
[0015]采用所述字符串进行哈希运算,获得特征值;
[0016]从所述特征值中提取指定位置的数据作为加密数据。
[0017]优选地,所述从所述特征值中提取指定位置的数据作为加密数据的步骤包括:
[0018]移除所述特征值中第一特征字符和第二特征字符的至少一个;所述第一特征字符包括所述特征值中排序在前的一个或多个字符,所述第二特征字符包括所述特征值中排序在后的一个或多个字符;
[0019]采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成加密数据。
[0020]优选地,所述用户身份认证信息包括用户身份标识,以及,密码,所述用户身份标识包括用户身份证明WD,和/或,用户名。
[0021]依据本发明的实施例,还公开了一种密码验证的方法,包括:
[0022]获取用户的身份认证信息;
[0023]在所述身份认证信息中添加预设参数形成字符串;
[0024]采用所述字符串进行哈希运算,获得特征值;
[0025]从所述特征值中提取指定位置的数据作为比对数据;
[0026]采用所述比对数据与预设的加密数据进行对比;
[0027]若匹配,判定所述密码的验证通过;否则,判定所述密码的验证未通过。
[0028]优选地,所述从所述特征值中提取指定位置的数据作为比对数据的步骤包括:
[0029]移除所述特征值中第一特征字符和第二特征字符的至少一个;所述第一特征字符包括所述特征值中排序在前的一个或多个字符,所述第二特征字符包括所述特征值中排序在后的一个或多个字符;
[0030]采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成比对数据。
[0031]优选地,所述用户身份认证信息包括用户身份标识,以及,密码,所述用户身份标识包括用户身份证明WD,和/或,用户名。
[0032]依据本发明的实施例,还公开了一种密码存储的装置,包括:
[0033]第一身份认证信息获取模块,用于获取用户的身份认证信息;
[0034]第一字符串形成模块,用于在所述身份认证信息中添加预设参数形成字符串;
[0035]第一特征值获得模块,用于采用所述字符串进行哈希运算,获得特征值;
[0036]加密数据提取模块,用于从所述特征值中提取指定位置的数据作为加密数据。
[0037]优选地,所述加密数据提取模块包括:
[0038]字符移除子模块,用于移除所述特征值中第一特征字符和第二特征字符的至少一个;所述第一特征字符包括所述特征值中排序在前的一个或多个字符,所述第二特征字符包括所述特征值中排序在后的一个或多个字符;
[0039]加密数据生成子模块,用于采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成加密数据。
[0040]优选地,所述用户身份认证信息包括用户身份标识,以及,密码,所述用户身份标识包括用户身份证明WD,和/或,用户名。
[0041]依据本发明的实施例,还公开了一种密码验证的装置,包括:
[0042]第二身份认证信息获取模块,用于获取用户的身份认证信息;
[0043]第二字符串形成模块,用于在所述身份认证信息中添加预设参数形成字符串;
[0044]第二特征值获得模块,用于采用所述字符串进行哈希运算,获得特征值;
[0045]比对数据提取模块,用于从所述特征值中提取指定位置的数据作为比对数据;
[0046]数据对比模块,用于采用所述比对数据与预设的加密数据进行对比;
[0047]判定通过子模块,用于在比对数据与预设的加密数据匹配时,判定所述密码的验证通过;
[0048]判定不通过子模块,用于在比对数据与预设的加密数据不匹配时,判定所述密码的验证未通过。
[0049]优选地,所述比对数据提取模块包括:
[0050]移除字符子模块,用于移除所述特征值中第一特征字符和第二特征字符的至少一个;所述第一特征字符包括所述特征值中排序在前的一个或多个字符,所述第二特征字符包括所述特征值中排序在后的一个或多个字符;
[0051]比对数据生成子模块,用于采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成比对数据。
[0052]优选地,所述用户身份认证信息包括用户身份标识,以及,密码,所述用户身份标识包括用户身份证明WD,和/或,用户名。
[0053]与现有技术相比,本发明实施例包括以下优点:
[0054]本发明通过在所述身份认证信息中添加预设参数形成字符串进行哈希运算,不仅可以增加哈希运算时输入的长度,而且可以使不同用户进行哈希运算时的字符串也不相同,从而可以增强用户密码的复杂程度,即使攻击者具有海量的弱密码哈希库,也无法反推出用户真正的密码,从而加强用户密码的防御能力,可以避免或减少哈希碰撞,并且,从所述特征值中提取指定位置的数据作为加密数据,加密数据并不是完整的哈希值,然而哈希库一般可以基于数据库构建,数据库的索引一般可以是前缀索引,因此,采用哈希库反查密码时无法利用数据库的索引,从而导致利用哈希库破解密码几乎是无法完成的任务,因此可以降低密码被破解的概率,确保用户密码不被泄漏。
[0055]进一步的,本发明通过移除所述特征值中第一特征字符和第二特征字符的至少一个,第一特征字符中字符的数量可以是一个或多个,第二特征字符中字符的数量也可以是一个或多个,因此,移除时可以采用第一特征字符与第二特征字符的组合中的一种,使得加密数据,和/或,比对数据的生成更加复杂,从而可以增强用户密码的复杂程度,从而加强用户密码的防御能力,同时,避免或减少哈希碰撞,从而降低密码被破解的概率,确保用户密码不被泄漏。
[0056]更进一步的,本发明通过在用户身份认证信息包括用户身份标识,可以使得加密数据,和/或,比对数据中携带用户身份标识的信息,每个用户的用户身份标识的信息可以是唯一的,每个用户的加密数据,和/或,比对数据也是唯一的,因此,要找到相碰撞的密码相当困难,构造具有相同特征值的密码对几乎不可能。从而可以增强用户密码的复杂程度,从而加强用户密码的防御能力,同时,避免或减少哈希碰撞,从而降低密码被破解的概率,确保用户密码不被泄漏。
【专利附图】
【附图说明】
[0057]图1示出了本发明一种密码存储的方法实施例的步骤流程图;
[0058]图2示出了本发明一种密码验证的方法实施例的步骤流程图;
[0059]图3示出了本发明一种密码存储的装置实施例的结构框图;
[0060]图4示出了本发明一种密码验证的装置实施例的结构框图。
【具体实施方式】
[0061]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0062]本发明实施例的核心构思之一在于,用户注册或者修改身份认证信息时,不直接存储用户的身份认证信息或者身份认证信息的哈希值,而是在用户的身份认证信息中添加预设参数,而后进行哈希运算获得特征值,并提取特征值中指定位置的数据作为加密数据存储在数据库中。
[0063]参照图1,示出了本发明一种密码存储的方法实施例的步骤流程图,具体可以包括如下步骤:
[0064]步骤101,获取用户的身份认证信息;
[0065]在具体实现中,身份认证信息可以是用户获得服务方所提供的服务的凭证信息。
[0066]优选地,身份认证信息可以包括用户身份标识,以及,密码,所述用户身份标识包括用户身份证明WD,和/或,用户名。
[0067]UID(User Identificat1n,用户身份证明),和/或,用户名可以是用于标识用户唯一身份的字段,UID可以是用户注册时,系统自动分配的数字标识,该数字标识通常可以具有一个或多个数字字符,并且,每个用户的UID可以是唯一的。
[0068]当用户输入完成该用户的身份认证信息时,系统可以在后台获取到该身份认证信肩、O
[0069]需要说明的是,用户身份标识还可以是其他标识用户唯一身份的字段,本领域技术人员可以根据实际需要,选择合适的标识用户唯一身份的字段作为用户身份标识。
[0070]本发明通过在用户身份认证信息包括用户身份标识,可以使得加密数据,和/或,比对数据中携带用户身份标识的信息,每个用户的用户身份标识的信息可以是唯一的,每个用户的加密数据,和/或,比对数据也是唯一的,因此,要找到相碰撞的密码相当困难,构造具有相同特征值的密码对几乎不可能。从而可以增强用户密码的复杂程度,从而加强用户密码的防御能力,同时,避免或减少哈希碰撞,从而降低密码被破解的概率,确保用户密码不被泄漏。
[0071]步骤102,在所述身份认证信息中添加预设参数形成字符串;
[0072]在实际应用中,预设参数可以是密钥常量,密钥常量可以是对于任意用户都相同,并且固定的字符串。
[0073]预设参数可以添加至身份认证信息中,用户身份标识、密码和预设参数可以按照一定的顺序组成字符串,例如,字符串可以是用户身份标识-密码-预设参数,也可以是用户身份标识-预设参数-密码等等,此过程可以称之为“加盐”。
[0074]步骤103,采用所述字符串进行哈希运算,获得特征值;
[0075]在具体应用中,可以调用哈希函数对加盐的字符串进行哈希运算,获得的哈希值即可以是特征值。
[0076]需要说明的是,哈希函数可以是MD5, SHA-1等hash函数中的任意一种,本领域技术人员可以根据实际需要,选择合适的哈希函数。
[0077]步骤104,从所述特征值中提取指定位置的数据作为加密数据。
[0078]应用本申请实施例,可以将哈希运算得到的哈希值,即特征值,移除特定位置的数据,从而可以保留下指定位置的数据,提取该指定位置的数据作为加密数据存储到数据库中。
[0079]在本发明实施例的一种优选示例中,所述步骤104具体可以包括以下子步骤:
[0080]子步骤S11,移除所述特征值中第一特征字符和第二特征字符的至少一个;
[0081]所述第一特征字符可以包括所述特征值中排序在前的一个或多个字符,所述第二特征字符可以包括所述特征值中排序在后的一个或多个字符;
[0082]作为本发明具体应用的一种示例,哈希值可以作为特征值,由于哈希值可以是一个32位的字符串,第一特征字符可以是特征值中排序在前的一个或多个字符,第二特征字符可以是述特征值中排序在后的一个或多个字符,优选地,第一特征字符与第二特征字符的字符个数之和可以小于或等于8,第一特征字符可以包括从字符串第一个字符开始的
2-4个字符,第二特征字符可以包括从字符串最后一个字符开始的2-4个字符。
[0083]因此,可以从特征值中移除从第一个字符开始的2-4个字符,和/或,移除从最后一个字符开始的2-4个字符。
[0084]在实际应用中,可以在第一特征字符与第二特征字符的组合中任意选取一个进行移除,例如,移除特征值中从第一个字符开始的3个字符,以及,移除特征值中从最后一个字符开始的2个字符。
[0085]本发明通过移除所述特征值中第一特征字符和第二特征字符的至少一个,第一特征字符中字符的数量可以是一个或多个,第二特征字符中字符的数量也可以是一个或多个,因此,移除时可以采用第一特征字符与第二特征字符的组合中的一种,使得加密数据,和/或,比对数据的生成更加复杂,从而可以增强用户密码的复杂程度,从而加强用户密码的防御能力,同时,避免或减少哈希碰撞,从而降低密码被破解的概率,确保用户密码不被泄漏。
[0086]子步骤S12,采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成加密数据。
[0087]移除特征值中第一特征字符和第二特征字符的至少一个后,特征值中余下的字符可以作为指定位置的数据,提取该指定位置的数据可以生成加密数据,并可以存储到数据库中。
[0088]本发明通过在所述身份认证信息中添加预设参数形成字符串进行哈希运算,不仅可以增加哈希运算时输入的长度,而且可以使不同用户进行哈希运算时的字符串也不相同,从而可以增强用户密码的复杂程度,即使攻击者具有海量的弱密码哈希库,也无法反推出用户真正的密码,从而加强用户密码的防御能力,可以避免或减少哈希碰撞,并且,从所述特征值中提取指定位置的数据作为加密数据,加密数据并不是完整的哈希值,然而哈希库一般可以基于数据库构建,数据库的索引一般可以是前缀索引,因此,采用哈希库反查密码时无法利用数据库的索引,从而导致利用哈希库破解密码几乎是无法完成的任务,因此可以降低密码被破解的概率,确保用户密码不被泄漏。
[0089]为使本领域技术人员更好地理解本发明,以下通过采用函数实现本发明为例,进一步说明本发明实施例。
[0090]为方便描述,对将要采用的函数及参数作如下假设:
[0091]a)、用户身份标识为WD,也可以取用户名或者其他能标识用户唯一身份的字段;
[0092]b)、用户密码为PWD;
[0093]C)、密钥常量为SKEY ;
[0094]d)、加盐函数为salt ;
[0095]e)、哈希函数为hash,可以是任意一种hash函数;
[0096]f)、提取函数为mid ;
[0097]获取用户认证信息后的步骤如下:
[0098]第一步,密码加盐:salt(UID+PWD+SKEY);
[0099]第二步,取哈希值:hash(salt (UID+PWD+SKEY));
[0100]第三步,提取哈希值的中间部分:mid(hash(salt(UID+PWD+SKEY)),2,28);
[0101]第四步,将mid函数计算的最终结果作为加密数据存储到数据库中。
[0102]具体地,密码加盐可以是采用加盐函数salt将nD、PWD和SKEY依次串联,形成字符串,而后,可以采用哈希函数hash对字符串进行哈希运算,获取哈希值,再可以用提取函数mid提取哈希值的中间部分,在本发明实施例中,可以提取哈希值第2位至第28位上的字符,将其作为加密数据存储到数据库中。
[0103]攻击者的密码-哈希值关系表一般可以是基于数据库构建,数据库的索引一般可以是前缀索引,由于本发明并没有存储完整的哈希值,而只存储了哈希值中间的一部分,因此,攻击者采用哈希值根据密码-哈希值关系表反查密码时,无法利用索引,从而导致利用密码-哈希值关系表反查密码可以是无法完成的任务。
[0104]参照图2,示出了本发明一种密码验证的方法实施例的步骤流程图,具体可以包括如下步骤:
[0105]步骤201,获取用户的身份认证信息;
[0106]在本发明的一种优选示例中,所述用户身份认证信息包括用户身份标识,以及,密码,所述用户身份标识包括用户身份证明WD,和/或,用户名。
[0107]本发明通过在用户身份认证信息包括用户身份标识,可以使得加密数据,和/或,比对数据中携带用户身份标识的信息,每个用户的用户身份标识的信息可以是唯一的,每个用户的加密数据,和/或,比对数据也是唯一的,因此,要找到相碰撞的密码相当困难,构造具有相同特征值的密码对几乎不可能。从而可以增强用户密码的复杂程度,从而加强用户密码的防御能力,同时,避免或减少哈希碰撞,从而降低密码被破解的概率,确保用户密码不被泄漏。
[0108]步骤202,在所述身份认证信息中添加预设参数形成字符串;
[0109]步骤203,采用所述字符串进行哈希运算,获得特征值;
[0110]步骤204,从所述特征值中提取指定位置的数据作为比对数据;
[0111]需要说明的是,比对数据可以采用与预设的加密数据相同的生成规则,可以包括相同的预设参数,相同的哈希算法,以及,从所述特征值中提取与预设的加密数据相同指定位置的数据作为比对数据。
[0112]在本发明实施例的一种优选示例中,所述步骤204具体可以包括以下子步骤:
[0113]子步骤S21,移除所述特征值中第一特征字符和第二特征字符的至少一个;所述第一特征字符包括所述特征值中排序在前的一个或多个字符,所述第二特征字符包括所述特征值中排序在后的一个或多个字符;
[0114]子步骤S22,采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成比对数据。
[0115]本发明通过移除所述特征值中第一特征字符和第二特征字符的至少一个,第一特征字符中字符的数量可以是一个或多个,第二特征字符中字符的数量也可以是一个或多个,因此,移除时可以采用第一特征字符与第二特征字符的组合中的一种,使得加密数据,和/或,比对数据的生成更加复杂,从而可以增强用户密码的复杂程度,从而加强用户密码的防御能力,同时,避免或减少哈希碰撞,从而降低密码被破解的概率,确保用户密码不被泄漏。
[0116]步骤205,采用所述比对数据与预设的加密数据进行对比;若匹配,执行步骤206 ;否则,执行步骤207;
[0117]在具体实现中,预设的加密数据可以预先存储在数据库中,预设的加密数据与对比数据的生成过程相同,采用比对数据与预设的加密数据进行对比,判断比对数据与加密数据是否一致,若一致,比对数据可以与加密数据匹配,则可以表明生成比对数据时获取的身份认证信息与生成预设的加密数据时获取的身份认证信息相同,执行步骤206 ;若不一致,比对数据不可以与加密数据匹配,则可以表明生成比对数据时获取的身份认证信息与生成预设的加密数据时获取的身份认证信息不相同,执行步骤207。
[0118]步骤206,判定所述密码的验证通过;
[0119]当比对数据可以与加密数据匹配时,可以表明输入的身份认证信息正确,可以通过密码的验证。
[0120]步骤207,判定所述密码的验证未通过。
[0121]当比对数据不可以与加密数据匹配时,可以表明输入的身份认证信息不正确,可以不通过密码的验证。
[0122]本发明通过在所述身份认证信息中添加预设参数形成字符串进行哈希运算,不仅可以增加哈希运算时输入的长度,而且可以使不同用户进行哈希运算时的字符串也不相同,从而可以增强用户密码的复杂程度,即使攻击者具有海量的弱密码哈希库,也无法反推出用户真正的密码,从而加强用户密码的防御能力,可以避免或减少哈希碰撞,并且,从所述特征值中提取指定位置的数据作为加密数据,加密数据并不是完整的哈希值,然而哈希库一般可以基于数据库构建,数据库的索引一般可以是前缀索引,因此,采用哈希库反查密码时无法利用数据库的索引,从而导致利用哈希库破解密码几乎是无法完成的任务,因此可以降低密码被破解的概率,确保用户密码不被泄漏。
[0123]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0124]参照图3,示出了本发明一种密码存储的装置实施例的结构框图,具体可以包括如下模块:
[0125]第一身份认证信息获取模块301,用于获取用户的身份认证信息;
[0126]第一字符串形成模块302,用于在所述身份认证信息中添加预设参数形成字符串;
[0127]第一特征值获得模块303,用于采用所述字符串进行哈希运算,获得特征值;
[0128]加密数据提取模块304,用于从所述特征值中提取指定位置的数据作为加密数据。
[0129]在本发明实施例的一种优选示例中,所述加密数据提取模块304具体可以包括以下子模块:
[0130]字符移除子模块,用于移除所述特征值中第一特征字符和第二特征字符的至少一个;所述第一特征字符包括所述特征值中排序在前的一个或多个字符,所述第二特征字符包括所述特征值中排序在后的一个或多个字符;
[0131]加密数据生成子模块,用于采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成加密数据。
[0132]在本发明实施例的一种优选示例中,所述用户身份认证信息包括用户身份标识,以及,密码,所述用户身份标识包括用户身份证明WD,和/或,用户名。
[0133]对于图3所示的密码存储的装置实施例而言,由于其与图1所示的密码存储的方法实施例基本相似,所以描述的比较简单,相关之处参见图1所示的密码存储的方法实施例的部分说明即可。
[0134]参照图4,示出了本发明一种密码验证的装置实施例的结构框图,具体可以包括如下模块:
[0135]第二身份认证信息获取模块401,用于获取用户的身份认证信息;
[0136]第二字符串形成模块402,用于在所述身份认证信息中添加预设参数形成字符串;
[0137]第二特征值获得模块403,用于采用所述字符串进行哈希运算,获得特征值;
[0138]比对数据提取模块404,用于从所述特征值中提取指定位置的数据作为比对数据;
[0139]数据对比模块405,用于采用所述比对数据与预设的加密数据进行对比;
[0140]判定通过子模块406,用于在比对数据与预设的加密数据匹配时,判定所述密码的验证通过;
[0141]判定不通过子模块407,用于在比对数据与预设的加密数据不匹配时,判定所述密码的验证未通过。
[0142]在本发明实施例的一种优选示例中,所述比对数据提取模块404具体可以包括以下子模块:
[0143]移除字符子模块,用于移除所述特征值中第一特征字符和第二特征字符的至少一个;所述第一特征字符包括所述特征值中排序在前的一个或多个字符,所述第二特征字符包括所述特征值中排序在后的一个或多个字符;
[0144]比对数据生成子模块,用于采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成比对数据。
[0145]在本发明实施例的一种优选示例中,所述用户身份认证信息包括用户身份标识,以及,密码,所述用户身份标识包括用户身份证明WD,和/或,用户名。
[0146]对于图4所示的密码验证的装置实施例而言,由于其与图2所示的密码验证的方法实施例基本相似,所以描述的比较简单,相关之处参见图2所示的密码验证的方法实施例的部分说明即可。
[0147]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0148]本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0149]本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0150]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0151]这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0152]尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0153]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0154]以上对本发明所提供的一种密码存储及验证的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种密码存储的方法,其特征在于,包括: 获取用户的身份认证信息; 在所述身份认证信息中添加预设参数形成字符串; 采用所述字符串进行哈希运算,获得特征值; 从所述特征值中提取指定位置的数据作为加密数据。
2.根据权利要求1所述的方法,其特征在于,所述从所述特征值中提取指定位置的数据作为加密数据的步骤包括: 移除所述特征值中第一特征字符和第二特征字符的至少一个;所述第一特征字符包括所述特征值中排序在前的一个或多个字符,所述第二特征字符包括所述特征值中排序在后的一个或多个字符; 采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成加密数据。
3.根据权利要求1或2所述的方法,其特征在于,所述用户身份认证信息包括用户身份标识,以及,密码,所述用户身份标识包括用户身份证明瓜0,和/或,用户名。
4.一种密码验证的方法,其特征在于,包括: 获取用户的身份认证信息; 在所述身份认证信息中添加预设参数形成字符串; 采用所述字符串进行哈希运算,获得特征值; 从所述特征值中提取指定位置的数据作为比对数据; 采用所述比对数据与预设的加密数据进行对比; 若匹配,判定所述密码的验证通过;否则,判定所述密码的验证未通过。
5.根据权利要求4所述的方法,其特征在于,所述从所述特征值中提取指定位置的数据作为比对数据的步骤包括: 移除所述特征值中第一特征字符和第二特征字符的至少一个;所述第一特征字符包括所述特征值中排序在前的一个或多个字符,所述第二特征字符包括所述特征值中排序在后的一个或多个字符; 采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成比对数据。
6.根据权利要求4或5所述的方法,其特征在于,所述用户身份认证信息包括用户身份标识,以及,密码,所述用户身份标识包括用户身份证明瓜0,和/或,用户名。
7.—种密码存储的装置,其特征在于,包括: 第一身份认证信息获取模块,用于获取用户的身份认证信息; 第一字符串形成模块,用于在所述身份认证信息中添加预设参数形成字符串; 第一特征值获得模块,用于采用所述字符串进行哈希运算,获得特征值; 加密数据提取模块,用于从所述特征值中提取指定位置的数据作为加密数据。
8.根据权利要求7所述的装置,其特征在于,所述加密数据提取模块包括: 字符移除子模块,用于移除所述特征值中第一特征字符和第二特征字符的至少一个;所述第一特征字符包括所述特征值中排序在前的一个或多个字符,所述第二特征字符包括所述特征值中排序在后的一个或多个字符; 加密数据生成子模块,用于采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成加密数据。
9.一种密码验证的装置,其特征在于,包括: 第二身份认证信息获取模块,用于获取用户的身份认证信息; 第二字符串形成模块,用于在所述身份认证信息中添加预设参数形成字符串; 第二特征值获得模块,用于采用所述字符串进行哈希运算,获得特征值; 比对数据提取模块,用于从所述特征值中提取指定位置的数据作为比对数据; 数据对比模块,用于采用所述比对数据与预设的加密数据进行对比; 判定通过子模块,用于在比对数据与预设的加密数据匹配时,判定所述密码的验证通过; 判定不通过子模块,用于在比对数据与预设的加密数据不匹配时,判定所述密码的验证未通过。
10.根据权利要求9所述的装置,其特征在于,所述比对数据提取模块包括: 移除字符子模块,用于移除所述特征值中第一特征字符和第二特征字符的至少一个;所述第一特征字符包括所述特征值中排序在前的一个或多个字符,所述第二特征字符包括所述特征值中排序在后的一个或多个字符; 比对数据生成子模块,用于采用所述移除第一特征字符和第二特征字符的至少一个后的特征值生成比对数据。
【文档编号】G06F21/31GK104281794SQ201410491961
【公开日】2015年1月14日 申请日期:2014年9月23日 优先权日:2014年9月23日
【发明者】尹非凡 申请人:北京奇艺世纪科技有限公司