java web实现 忘记密码(找回密码)功能及代码

(一).总体思路

(二).部分截图

(三).部分代码

(一).总体思路:

  1.在 找回密码页面 录入 姓名、邮箱和验证码,录入后点击【提交】按钮,此时发送一封邮件,邮件中带有加密后的链接。

  2.点开 邮件中链接,解密并判断链接是否有效,验证通过后 到 修改密码页面。

  3.在修改页面中 录入新密码, 点击【修改按钮】修改密码,操作完成。

(二).部分截图:

(三).部分代码:

  代码1(对应上面总体思路1):此处关键是 生成加密链接,而且此链接 参数需要在浏览器中get方式传递,不能支持“+”,"/"等特殊字符。

                //添加 过期时间,24小时后链接失效
                long endTimes = System.currentTimeMillis()+1*24*3600*1000;
                String para = personname+";"+email+";"+endTimes;
                //先加密,再url转码,顺序不能修改 modify by lifq 20150317
                String encode = UrlUtil.getURLEncoderString(DesUtil.encrypt(para));
                content = EmailUtil.replace(content, "{EMAIL_SETPWD_ADD2}", "http://localhost:8080/test/toSetPayrollPwd2.do?vc="+encode);

  代码2(对应上面总体思路2):此处关键是  获取参数vc并解密。

/**
     * 找回 密码 第二步
     *
     * @return String
     * @author lifq
     * @date 2015-3-17 上午10:24:09
     */
    public String toSetPayrollPwd2(){
        String vc = context.getParameter("vc");
        if(null!=vc){
            try {
                //此处直接 des解码
                String decode = DesUtil.decrypt(vc);
                List list = EmailUtil.parseContent(decode, ";");
                if(null!=list && list.size()>0){
                    String personname = (String)list.get(0);
                    String email = (String)list.get(1);
                    long entimes = Long.parseLong((String)list.get(2));
                    long curtime = System.currentTimeMillis();
                    if(entimes<=curtime){
                        context.setRequestAttribute("errorMsg", "当前链接已失效,请重新 后去重置密码链接!");
                    }else{
                        context.setRequestAttribute("personname", personname);
                        context.setRequestAttribute("email", email);
                        context.setRequestAttribute("vc", UrlUtil.getURLEncoderString(vc));
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
                context.setRequestAttribute("errorMsg", "链接无效!");
            }
        }
        return RETURN_SUCCESS;
    }

上述部分涉及到URL加密解密的util类 和 DES加密、解密的util类,在之前文章中有代码:

1.java 实现 DES加密 解密算法

2.java实现url转码解码

时间: 2024-12-12 02:53:08

java web实现 忘记密码(找回密码)功能及代码的相关文章

网站开发之用户重设密码 找回密码功能的实现原理

网站开发之用户重设密码 找回密码功能的实现原理,这个东西基本在现在每个系统中都带有的功能,但是实现的方式也是挺多的,这个是跟数据库没多大关系的方法嘞. 用户流程: 1.用户忘记密码,来到密码重设界面 2.用户输入Email地址,点击重设密码按钮 3.用户收到一封密码重设邮件,里面有重设密码的链接,此链接有过期时间 4.用户点击链接,来到密码重设页面,输入新密码,完成 这个流程并没有什么创新,很多网站都是用这套流程 后端实现方式: 1.当用户输入Email地址后,验证这个Email,如果存在于数据

.Net Web产品中增加自己的功能和代码?

背景: 最近有一个项目,一个朋友找了一个网上比较成熟的CMS系统(动易),让我给他增加一些功能,这个产品功能挺多,但是没有源代码.按照以前的做法,就是直接反编译他的dll,生成源代码,然后在源代码的基础上修改和完善自己的功能.但是研究了一下这个产品,bin下面的DLL非常多,有主要的,还有辅助的.如果每个dll都反编译,简直不现实. ? 用发编译工具?ILSpy打开里面几个主要的dll,发现还加壳混淆了,用De4Dot反混淆出来.里面的代码还是非常清晰,但是如果每个dll都这样搞,岂不累死. ?

关于wordpress忘记密码 找回密码的方式

1.通过直接修改数据库中密码的加密字符(如果wordpress的版本不同,那么此方法是不好实现的) 2.使用找回密码的方式:通过邮箱找回密码 前端登录密码错误后 会显示   错误:[email protected]的密码不正确.忘记密码了? 点击忘记密码 --->输入数据库中user_mail字段的值也就是这个用户设置的邮箱地址,稍等即可收到此邮箱 提示: 再一些linux服务器中 会出现以下错误: 您的mail函数无法使用的问题 解决此问题的方式为: 一.适用于linux云服务器 描述:没有安

java可以实现对图片的裁剪功能么

原文:java可以实现对图片的裁剪功能么 代码下载地址:http://www.zuidaima.com/share/1550463233002496.htm 想对原图进行裁剪,比如对用户上传的头像进行裁剪. 原图: 运行效果图: java可以实现对图片的裁剪功能么

Java实现邮箱找回密码

[来源网络:http://www.cnblogs.com/zyw-205520/p/3738439.html] 通过邮件找回密码功能的实现 1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的功能我就不说了,重点讲找回密码. 2.参考别人的思路:发送邮件→请求邮件里的URL→验证url→{验证成功修改密码,不成功跳转到失败页面} 重点就是如何生成这个url和如何解析这个url.

Java实现邮箱找回密码 --转载

通过邮件找回密码功能的实现 1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的功能我就不说了,重点讲找回密码. 2.参考别人的思路:发送邮件→请求邮件里的URL→验证url→{验证成功修改密码,不成功跳转到失败页面} 重点就是如何生成这个url和如何解析这个url. 需要注意的是一个url只能修改一次密码,当同一帐号发送多封邮件,只有最后一封邮件的url 邮箱 3.加密能防止

看好你的门-确保验证机制的安全(5)-防止滥用密码修改和密码找回功能

首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考. 1. 前提 执行安全的验证机制,不仅仅要同时满足几个关键安全目标,许多的时候也需要牺牲其他目标.比如易用性.成本.还有功能. 2. 防止滥用密码修改的基本要求 一些基本要求,写下来,以后也可以参考. 1. 加一个简单图片验证码,基本确保是人在操作,而不是机器: 2. 只能从已经通过验证的会话中访问该功能: 3. 不要以任何方式直接提供用户名,也不要使用隐藏表单字段或者cookie提供用户名:

SpringMVC通过邮件找回密码功能的实现

1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的功能我就不说了,重点讲找回密码. 2.参考别人的思路:发送邮件→请求邮件里的URL→验证url→{验证成功修改密码,不成功跳转到失败页面} 重点就是如何生成这个url和如何解析这个url. 需要注意的是一个url只能修改一次密码,当同一帐号发送多封邮件,只有最后一封邮件的url 3.加密能防止伪造攻击,一次url只能验证一次,

找回密码功能的实现(考虑安全性,加密方面)

最近负责公司的登陆与注册模块,大部分已经实现了,这找回密码功能实现的思路是这样的 1.用户忘记密码,需要找回密码 2.后台通过一系列的加密处理,将通过后台邮件将重置密码的页面发送到该用户的邮箱 3.用户通过邮箱里烦人链接就可以重置密码. 以下是代码 /* ------------------------------------------忘记密码,发送邮件------------------------------------------------- */ //找回密码发送邮件功能 @Requ