一种基于多种安全验证方式实现密码找回方法及系统与流程

文档序号:17089063发布日期:2019-03-13 23:13阅读:312来源:国知局
一种基于多种安全验证方式实现密码找回方法及系统与流程

本发明涉及用户登录验证及密码找回领域,具体地说是一种基于多种安全验证方式实现密码找回方法及系统。



背景技术:

随着计算机科学和网络技术的发展,信息的安全问题越来越突出。通过md5加密算法校验登录账号是密码技术的一个重要分支,能够防止信息不被盗取、修改,从而保护整个系统信息及数据的安全性。验证码技术可以防止恶意破解密码、刷票、论坛灌水、有效防止某些黑客对某一特定注册用户用特定程序暴力破解方式进行不断的登录尝试。密码找回原理就是通过发送验证码来验明正身,通过发送邮件验证,最终通过重置密码来完成找回密码。近几年,随着互联网行业的迅猛发展,同时也促进了加密解密技术、验证码等技术的发展,故如何更好的保障账号和数据安全是目前现有技术中继续解决的技术问题。

专利号为cn108400982a的专利文献公开了一种嵌入式设备密码找回方法,通过将手机号、设备的标签的设备id、找回序号和系统的当前时间组成字符串,通过aes加密算法生成一组加密的字符串,通过该加密字符串生成一幅二维码显示在设备的ui界面上;用户通过手机扫描二维码进行相关校验程序;校验成功后,可重置密码,找回密码成功。但是该技术方案仅适用于嵌入式设备,不能满足所有登录用户的密码找回,不能更好的保护账号和数据安全。



技术实现要素:

本发明的技术任务是提供一种基于多种安全验证方式实现密码找回方法及系统,来解决如何更好的保障账号和数据安全的问题。

本发明的技术任务是按以下方式实现的,一种基于多种安全验证方式实现密码找回方法,该方法主要包括如下步骤:

s1、生成验证码,用户根据验证码验证登录;

s2、将密码通过md5加密算法加密,再将验证码加在后面,再用md5加密算法加密,在网络传输过程中以密文的形式传输到后台数据库;

s3、根据邮箱找回密码。

作为优选,所述步骤s1中生成验证码的具体步骤如下:

s101、通过getfont()方法设置生产验证码的字体;

s102、通过getrandcolor(intfc,intbc)方法获取生成字体的随机颜色;

s103、通过drowstring(graphicsg,stringrandomstring,inti)绘制随机生成的字符串;

s104、通过drowline(graphicsg)方法绘制干扰线;

s105、通过getrandomstring(intnum)方法获取随机字符;

s106、getrandcode()方法生成固定大小不同线条、不同字符的随机图片,通过image.io.write(image,"jpeg",response.getoutputstream())方法将内存中的图片通过流动形式输出到客户端;其中,验证码就是将一串随机产生的数字或符号,生成一幅图片,图片里加上干扰象素(防止ocr),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用密码修改功能。

作为优选,所述步骤s2中后台数据库保存的是用md5加密算法加密的密码,将该密文加上保存在session范围内的验证码用md5加密算法加密,得到的密文与请求中的口令对比:

①、若配对,则验证成功;

②、若未配对,则验证失败。

更优地,所述步骤s2中md5加密算法的具体步骤如下:

s201、hexdigits[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'},将字节转换成16进制表示的字符;

s202、实例化一个指定摘要算法为md5的messagedigest对象,java.security.messagedigest.getinstance("md5")

s203、生成md5加密字符串。

作为优选,所述步骤s3中根据邮箱找回密码的具体步骤如下:

s301、表单输入注册时的邮箱;

s302、给指定邮箱发送邮件,验证邮箱是否存在:

①、若邮箱存在,则下一步执行步骤s303;

②、若邮箱不存在,则提示用户邮箱未注册;

s303、生成邮箱url链接发送到用户邮箱中;

s304、用户登录邮箱收取邮件,点击url链接到网站验证程序;

s305、网站程序通过用户请求的字符串查询本地用户表,比对用户信息是否正确:

①、若正确,则转到重置密码页面重新设置新密码,完成密码修;

②、若不正确,则提示用户验证无效。

更优地,所述步骤s303中生成邮箱url链接的具体步骤如下:

s3031、用户发送邮件,请求邮件里生成url链接,验证url链接是否成功:

①、若验证成功,则修改密码;

②、若验证不成功,则跳转到失败页面;

s3032、一个url链接只能修改一次密码,当同一帐号发送多封邮件,只有最后一封邮件的url链接的加密能防止伪造攻击,一次url链接只能验证一次,并且绑定了用户;

s3033、生成url链接:用uuid生成随机密钥;

s3034、数字签名=md5(用户名+'$'+过期时间+‘$'+密钥key);

s3035、数据库字段(用户名(主键),密钥key,过期时间);

s3036、url链接参数(用户名,数字签名),密钥key的生成:在每一个用户找回密码时候为这个用户生成一个密钥key;生成过期时间,生成数字签名,生成url,发送邮件;saveorupdate(用户名,密钥key,过期时间)。

一种基于多种安全验证方式实现密码找回系统,该系统包括验证码生成模块、md5加密算法模块和密码找回模块;

其中,验证码生产模块用于生产验证码,用户根据验证码验证登录

md5加密算法模块用于将密码通过md5加密算法加密,再将验证码加在后面,再用md5加密算法加密,在网络传输过程中以密文的形式传输到后台数据库;

密码找回模块用于生产url链接,并发送邮件到用户邮箱,用户设置新密码,密码设置成功,实现根据邮箱找回密码。

作为优选,所述生成验证码的具体步骤如下:

s101、通过getfont()方法设置生产验证码的字体;

s102、通过getrandcolor(intfc,intbc)方法获取生成字体的随机颜色;

s103、通过drowstring(graphicsg,stringrandomstring,inti)绘制随机生成的字符串;

s104、通过drowline(graphicsg)方法绘制干扰线;

s105、通过getrandomstring(intnum)方法获取随机字符;

s106、getrandcode()方法生成固定大小不同线条、不同字符的随机图片,通过image.io.write(image,"jpeg",response.getoutputstream())方法将内存中的图片通过流动形式输出到客户端。

作为优选,所述md5加密算法的具体步骤如下:

s201、hexdigits[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'},将字节转换成16进制表示的字符;

s202、实例化一个指定摘要算法为md5的messagedigest对象,java.security.messagedigest.getinstance("md5")

s203、生成md5加密字符串。

作为优选,所述根据邮箱找回密码的具体步骤如下:

s301、表单输入注册时的邮箱;

s302、给指定邮箱发送邮件,验证邮箱是否存在:

①、若邮箱存在,则下一步执行步骤s303;

②、若邮箱不存在,则提示用户邮箱未注册;

s303、生成邮箱url链接发送到用户邮箱中;

s304、用户登录邮箱收取邮件,点击url链接到网站验证程序;

s305、网站程序通过用户请求的字符串查询本地用户表,比对用户信息是否正确:

①、若正确,则转到重置密码页面重新设置新密码,完成密码修;

②、若不正确,则提示用户验证无效。

本发明的基于多种安全验证方式实现密码找回方法及系统具有以下优点:

(一)、本发明支持多种安全验证方式实现登录和密码找回,能够更好的保障账号和数据安全;

(二)、本发明采用md5加密算法校验登录账号,能够防止信息不被盗取、修改,从而保护整个系统信息及数据的安全性;

(三)、本发明利用验证码技术可以防止恶意破解密码、刷票、论坛灌水、有效防止某些黑客对某一特定注册用户用特定程序暴力破解方式进行不断的登录尝试;

(四)、本发明利用邮箱找回密码,通过发送邮件验证,最终通过重置密码来完成找回密码,安全可靠;

(五)、本发明能满足验证码验证登录和绑定邮箱进行密码找回的业务需求。一般都需进行用户的登录验证,通过验证后才允许进入系统,常见的安全验证手段有md5加密传输、验证码校验等,通过加密技术和验证码技术的验证防止网页暴力破解程序、暴力破解用户的账号密码,来保障用户账号和数据的安全,当忘记账号密码时,通常通过绑定邮箱来实现密码找回,该方法简单方便,易于实际工作,具有很好的使用价值。

附图说明

下面结合附图对本发明进一步说明。

附图1为基于多种安全验证方式实现密码找回方法的流程框图;

附图2为基于多种安全验证方式实现密码找回系统的结构框图。

具体实施方式

参照说明书附图和具体实施例对本发明的一种基于多种安全验证方式实现密码找回方法及系统作以下详细地说明。

实施例1:

如附图1所示,本发明的基于多种安全验证方式实现密码找回方法,该方法主要包括如下步骤:

s1、生成验证码,用户根据验证码验证登录;

其中,生成验证码的具体步骤如下:

s101、通过getfont()方法设置生产验证码的字体;

s102、通过getrandcolor(intfc,intbc)方法获取生成字体的随机颜色;

s103、通过drowstring(graphicsg,stringrandomstring,inti)绘制随机生成的字符串;

s104、通过drowline(graphicsg)方法绘制干扰线;

s105、通过getrandomstring(intnum)方法获取随机字符;

s106、getrandcode()方法生成固定大小不同线条、不同字符的随机图片,通过image.io.write(image,"jpeg",response.getoutputstream())方法将内存中的图片通过流动形式输出到客户端;其中,验证码就是将一串随机产生的数字或符号,生成一幅图片,图片里加上干扰象素(防止ocr),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用密码修改功能。

s2、将密码通过md5加密算法加密,再将验证码加在后面,再用md5加密算法加密,在网络传输过程中以密文的形式传输到后台数据库;后台数据库保存的是用md5加密算法加密的密码,将该密文加上保存在session范围内的验证码用md5加密算法加密,得到的密文与请求中的口令对比:

①、若配对,则验证成功;

②、若未配对,则验证失败。

其中,md5加密算法的具体步骤如下:

s201、hexdigits[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'},将字节转换成16进制表示的字符;

s202、实例化一个指定摘要算法为md5的messagedigest对象,java.security.messagedigest.getinstance("md5")

s203、生成md5加密字符串。

s3、根据邮箱找回密码,具体步骤如下:

s301、表单输入注册时的邮箱;

s302、给指定邮箱发送邮件,验证邮箱是否存在:

①、若邮箱存在,则下一步执行步骤s303;

②、若邮箱不存在,则提示用户邮箱未注册;

s303、生成邮箱url链接发送到用户邮箱中;

其中,生成邮箱url链接的具体步骤如下:

s3031、用户发送邮件,请求邮件里生成url链接,验证url链接是否成功:

①、若验证成功,则修改密码;

②、若验证不成功,则跳转到失败页面;

s3032、一个url链接只能修改一次密码,当同一帐号发送多封邮件,只有最后一封邮件的url链接的加密能防止伪造攻击,一次url链接只能验证一次,并且绑定了用户;

s3033、生成url链接:用uuid生成随机密钥;

s3034、数字签名=md5(用户名+'$'+过期时间+‘$'+密钥key);

s3035、数据库字段(用户名(主键),密钥key,过期时间);

s3036、url链接参数(用户名,数字签名),密钥key的生成:在每一个用户找回密码时候为这个用户生成一个密钥key;生成过期时间,生成数字签名,生成url,发送邮件;saveorupdate(用户名,密钥key,过期时间)。

s304、用户登录邮箱收取邮件,点击url链接到网站验证程序;

s305、网站程序通过用户请求的字符串查询本地用户表,比对用户信息是否正确:

①、若正确,则转到重置密码页面重新设置新密码,完成密码修;

②、若不正确,则提示用户验证无效。

实施例2:

如附图2所示,本发明的基于多种安全验证方式实现密码找回系统,该系统包括验证码生成模块、md5加密算法模块和密码找回模块;其中,验证码生产模块用于生产验证码,用户根据验证码验证登录md5加密算法模块用于将密码通过md5加密算法加密,再将验证码加在后面,再用md5加密算法加密,在网络传输过程中以密文的形式传输到后台数据库;密码找回模块用于生产url链接,并发送邮件到用户邮箱,用户设置新密码,密码设置成功,实现根据邮箱找回密码。

其中,生成验证码的具体步骤如下:

s101、通过getfont()方法设置生产验证码的字体;

s102、通过getrandcolor(intfc,intbc)方法获取生成字体的随机颜色;

s103、通过drowstring(graphicsg,stringrandomstring,inti)绘制随机生成的字符串;

s104、通过drowline(graphicsg)方法绘制干扰线;

s105、通过getrandomstring(intnum)方法获取随机字符;

s106、getrandcode()方法生成固定大小不同线条、不同字符的随机图片,通过image.io.write(image,"jpeg",response.getoutputstream())方法将内存中的图片通过流动形式输出到客户端。

其中,md5加密算法的具体步骤如下:

s201、hexdigits[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'},将字节转换成16进制表示的字符;

s202、实例化一个指定摘要算法为md5的messagedigest对象,java.security.messagedigest.getinstance("md5")

s203、生成md5加密字符串。

其中,根据邮箱找回密码的具体步骤如下:

s301、表单输入注册时的邮箱;

s302、给指定邮箱发送邮件,验证邮箱是否存在:

①、若邮箱存在,则下一步执行步骤s303;

②、若邮箱不存在,则提示用户邮箱未注册;

s303、生成邮箱url链接发送到用户邮箱中;

s304、用户登录邮箱收取邮件,点击url链接到网站验证程序;

s305、网站程序通过用户请求的字符串查询本地用户表,比对用户信息是否正确:

①、若正确,则转到重置密码页面重新设置新密码,完成密码修;

②、若不正确,则提示用户验证无效。

实施例3:

具体步骤如下:

(1)、md5加密算法实现,主要代码如下:

(2)、验证码生成算法,要代码如下:

(3)、给指定邮箱发送邮件,验证邮箱是否存在,若存在则生成邮箱链接地址,主要代码如下:

(4)、邮件发送成功后进入邮箱,通过该链接进入修改密码请求,链接验证通过后进入修改密码页面,用于处理从邮箱链接过来的修改密码请求,主要代码如下:

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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