【技术实现步骤摘要】
安全的密码存储验证方法和装置
本专利技术涉及网络安全领域,尤其是指一种安全的密码存储验证方法和装置。
技术介绍
目前常见的密码存储和登录验证场景中的密码攻击手段,主要有:字典和暴力破解攻击(DictionaryandBruteForceAttacks):最常见的破解Hash手段就是猜测密码,然后对每一个可能的密码进行Hash,对比需要破解的Hash和猜测的密码Hash值,如果两个值一样,那么之前猜测的密码就是正确的密码明文。猜测密码攻击常用的方式就是字典攻击和暴力攻击。字典攻击是将常用的密码,单词,短语和其他可能用来做密码的字符串放到一个文件中,然后对文件中的每一个词进行Hash,将这些Hash与需要破解的密码Hash比较。这种方式的成功率取决于密码字典的大小以及字典的是否合适。这种攻击方式,对于随机且复杂密码无效。查表破解(LookupTables):对于特定的hash类型,如果需要破解大量hash的话,查表是一种非常有效而且快速的方式。它的理念就是预先计算(pre-compute)出密码字典中每一个密码的hash。然后把hash和对应的密码保存在一个表里。这种 ...
【技术保护点】
一种安全的密码存储验证方法,其特征在于:它包括密码存储流程和密码验证流程,所述密码存储流程包括:S10)、客户端获取用户的用户名及密码;S11)、客户端从服务器端获取一个Salt;S12)、客户端对用户的密码加Salt;S13)、客户端对加Salt后的密码用哈希算法计算得到哈希值密码;S14)、客户端将用户名、Salt和哈希值密码存储到服务器端;所述密码验证流程包括:S20)、客户端获取服务器端的会话token及与用户的用户名对应存储的Salt,而后对用户的密码加Salt后计算得到哈希值密码,再以token为key,使用hmac_sha256_hex计算得到二次哈希值密码, ...
【技术特征摘要】
1.一种安全的密码存储验证方法,其特征在于:它包括密码存储流程和密码验证流程,所述密码存储流程包括:S10)、客户端获取用户的用户名及密码;S11)、客户端从服务器端获取一个Salt;S12)、客户端对用户的密码加Salt;S13)、客户端对加Salt后的密码用哈希算法计算得到哈希值密码;S14)、客户端将用户名、Salt和哈希值密码存储到服务器端;所述密码验证流程包括:S20)、客户端获取服务器端的会话token及与用户的用户名对应存储的Salt,而后对用户的密码加Salt后计算得到哈希值密码,再以token为key,使用hmac_sha256_hex计算得到二次哈希值密码,并将二次哈希值密码发送到服务器端;S30)、服务器端接收从客户端发送的用户名和二次哈希值密码,服务器端以与客户端会话的token为key,使用hmac_sha256_hex对存储在服务器端与用户端发送用户名对应的哈希值密码计算得到二次哈希值密码,服务器端对客户端二次哈希值密码与服务器端的哈希值密码进行对比验证后反馈验证结果至客户端。2.如权利要求1所述的安全的密码存储验证方法,其特征在于:步骤S20具体包括:S21)、客户端获取用户的用户名和密码;S22)、客户端将用户的用户名发送至服务器端;S23)、服务器端就本次会话生成唯一的token;S24)、服务器端将token与用户存储在服务器端与用户的用户名对应的Salt,一起发送至客户端;S25)、客户端对用户的密码加Salt后计算得到哈希值密码;S26)、客户端将哈希值密码与用户名拼接;S27)、客户端以token为key,使用hmac_sha256_hex计算得到二次哈希值密码;S28)、客户端将二次哈希值密码发送到服务器端。3.如权利要求2所述的安全的密码存储验证方法,其特征在于:步骤S30具体包括:S31)、服务器端接收到客户端发送的用户名和二次哈希值密码;S32)、服务器端通过用户名从服务器端查询用户名对应的哈希值密码;S33)、服务器端将哈希值密码与用户名拼接;S34)、服务器端以本次与客户端会话生成的唯一token为key,使用hmac_sha256_hex对存储在服务器端的哈希值密码计算得到二次哈希值密码;S35)、服务器端对客户端二次哈希值密码与服务器端的二次哈希值密码进行对比验证;S36)、服务器端将验证结果发送客户端;如果密码一致,则验证通过;如果密码不一致,则验证不通过。4.如权利要求1所述的安全的密码存储验证方法,其特征在于:它还包括有密码修改流程,包括:S41)、客户端获取用户的用户名及新密码;S42)、客户端从服务器端获取一个新的Salt;S43)、客户端将用户的新密码加Salt;S44)、客户端通过哈希算法计算得到新的哈希值密码;S45)、客户端将用户名、新的Salt和哈希值密码存储到服务器端。5.一种安全的密码存储验证装置,其特征在于:它包括密码存储模块和密码验证模块,其中,密码存储模块包括:注册信息获取单元,用于客户端获取用户的用户名及密码,而后转到Salt获取单元;Salt获取单元,用于客户端从服务器端获取一个Salt,而后转到Salt加入单元;Salt加入单元,用于客户端对用户的密码加Salt,而后转到客户端加密单元;客户端加密单元,用于客户端对加Salt后的密码用哈希算法...
【专利技术属性】
技术研发人员:高安存,
申请(专利权)人:深圳英飞拓科技股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。