一种网站用户密码加密和验证方法

文档序号:9730172阅读:1242来源:国知局
一种网站用户密码加密和验证方法
【技术领域】
[0001]本发明属于网络安全的保护网站用户数据领域,具体涉及一种网站用户密码加密和验证方法。
【背景技术】
[0002]现行网站的用户密码的保存,都是将明文或者只进行了简单的MD5加密得到的字符串保存在数据库中用户表的密码字段中,这样只要攻击者得到了数据库,就会很轻易的得到用户密码,攻击者除了会在本网站使用,还会拿到别的网站去尝试登陆,造成更大的破坏与损失。如去年的CSDN被爆就是用明文保存到数据库中,引发了密码泄露,而只用MD5加密的密码,如果用户密码不长,可以通过暴力输入就可以获得。而且这些密码保存到数据库中总是固定的,如明文的:123456,或者经过MD5加密的123456为:49ba59abbe56e057,使得黑客很容易猜到密码。此外,现在键盘木马的流行,使得用户的明文密码容易泄露。

【发明内容】

[0003]本发明的发明目的是:针对上述技术问题,提供一种网站用户密码加密和验证方法,本方法并不保存用户的实际明文密码,只保存经过MD5运算、DES对称加密运算后得到的密钥,以实现即使黑客攻破了网站数据库,取得了用户的密钥,也无法拿去别的网站使用;此外本方法使用了密码限定时间,登陆者点击提交的时间必须在限定时间范围内,由此防止黑客通过键盘木马等恶意软件取得了用户的明文密码来登陆网站系统。
[0004]为了解决上述技术问题,本发明技术方案为:
[0005]—种网站用户登录密码加密和验证方法,所述网站存储有验证时间、验证信息、随机码和登陆限定时间,包括以下步骤:
[0006]步骤1:当用户开始输入登录密码时,记录输入时间点,当用户输入完登录密码提交到服务器时,记录提交时间点;
[0007]步骤2:将所述提交时间点减去输入时间点,得到时间差,若时间差小于登陆限定时间;则进入步骤3,否则返回登录页面;
[0008]步骤3:将所述登录密码、验证时间和随机码按顺序组合成验证序列;
[0009]步骤4:将验证序列作为参数放入MD5运算DES对称加密运算,得到密钥;
[0010]步骤5:将所述密钥与所述验证信息进行匹配对比;若匹配,将所述验证时间更新为当前时间,将所述随机码更新为由随机函数生成的长度大于2个字符的字符串,进入步骤6;否则,返回登陆页面;
[0011]步骤6:将所述登录密码、验证时间和随机码按顺序组合成验证序列;
[0012]步骤7:将验证序列作为参数放入MD5运算、DES对称加密运算,得到密钥;
[0013]步骤8:将所述验证信息更新为密钥。
[0014]进一步地,所述MD5运算、DES对称加密运算,包括以下步骤:
[0015]步骤1:将所述验证序列中的随机码取出,按倒序重新组合随机码;
[0016]步骤2:将所述登录密码、验证时间和随机码按顺序重新组合成验证序列;
[0017]步骤3:将所述验证序列进行MD5运算,得到加密数据;
[0018]步骤4:将步骤3所述加密数据、服务器域名和服务器IP地址分别作为DES对称加密算法所需要的三个参数字段来参与DES对称加密运算,得到密钥;
[0019]本发明有益效果是:
[0020](I)本方法并不保存用户的实际明文密码,即使黑客获得此字段也无法去别的网站使用;
[0021](2)可以防止黑客通过键盘木马等恶意软件取得了用户的密码,到目标网站使用,特别针对网站管理员用户。
【附图说明】
[0022]图1为本发明的密码加密和验证方法的流程图。
【具体实施方式】
[0023]本发明公开了一种网站用户登录密码加密和验证方法。
[0024]以下结合附图对本发明实施进行说明。
[0025]实施例一:(普通用户的登录方式)
[0026]1、用户A登陆以前,网站数据库中存储有用户A验证时间、验证信息、随机码和登陆限定时间,其中验证时间为用户上次成功登陆网站时间,如(2015/10/2714:54:41),验证信息为用户上次成功登陆网站后由本发明的加密算法得到字符串,如(p73M3PPEa981kGSGglXLWjHPEphVf sXhtpFs+siE/3HTj9mOYJFp/A==),随机码为用户上次成功登陆网站后由随机函数生成的长度大于2个字符的字符串,如(NJj),登陆限定时间为网站管理员为普通用户设置的统一的一个时间范围,用户必须在此时间范围内把密码输入完毕并提交到服务器,才能进入下一步,否则将会提示密码错误。此处的时间范围优选为
0.5秒-20秒,最少设置为0.5秒的意义在于,一般来说,用户输入密码的时间,不会少于0.5秒,但是如果是黑客登陆,由于要尝试登陆的用户数量巨大,手工一个一个输入密码比较不现实,因此其用的可能会是自动化的密码登陆器,采用这种方法登陆的话,密码将会在0.5秒内完成,将被拒绝登陆。
[0027]2、用户A开始输入登录密码(密码为:abcdef)的时候,服务器记录输入时间点,当用户输入完登录密码提交到服务器时,记录提交时间点;
[0028]3、将所述提交时间点减去输入时间点,得到时间差,若时间差小于登陆限定时间;则进入步骤3,否则返回登录页面;
[0029]4、将所述登录密码、验证时间和随机码按顺序组合成验证序列,如(abcdef2015/10/2714: 54:41NJj);将此验证序列作为参数放入MD5运算、DES对称加密运算,包括以下步骤:
[0030]步骤1:将所述验证序列中的随机码取出,按倒序重新组合随机码;
[0031]步骤2:将所述登录密码、验证时间和随机码按顺序重新组合成验证序列,SP(abcdef2015/10/2714:54:41jJN);
[0032]步骤3:将所述验证序列进行MD5运算,即:
[0033]System.Web.Security.FormsAuthenticat1n.HashPasswordForStoringInConf igFile(Trim( "abcdef 2015/10/2714: 54: 41 j JN" ),〃MD5〃),得到加密数据(27191FF766C57A48E1BF697BAD778F57);
[0034]步骤4:将步骤3所述加密数据(27191FF766C57A48E1BF697BAD778F57)、服务器域名(WWW.abc.com)和服务器IP地址(192.168.1.1)分别作为DES对称加密算法所需要的三个参数字段来参与DES对称加密运算,得到密钥(p73M3PPEa981kGSGglXLWjHPEphVfsXhtpFs+siE/3HTj9mOYJFp/A==);
[0035]5、将所述密钥与所述验证信息进行匹配对比;若匹配,将所述验证时间更新为当前时间(2015/10/2714:54:41),将所述随机码更新为由随机函数生成的长度大于2个字符的字符串(Vfs),进入下一步;否则,返回登陆页面;
[0036]6、将所述登录密码、验证时间和随机码按顺序组合成验证序列,如(abcdef2015/10/2714:54:41Vf s,将此验证序列作为参数放入MD5运算、DES对称加密运算,包括以下步骤:
[0037]步骤I:将所述验证序列中的随机码取出,按倒序重新组合随机码;
[0038]步骤2:将所述登录密码、验证时间和随机码按顺序重新组合成验证序列,SP(abcdef2015/10/2714:54:41sfV);
[0039]步骤3:将所述验证序列进行MD5运算,即:
[0040]System.Web.Security.FormsAuthenticat1n.HashPasswordForStoringInConf igFile(Trim( "abcdef 2015/10/2714: 54
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1