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转码解码

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

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

    1.通过直接修改数据库中密码的加密字符(如果wordpress的版本不同,那么此方法是不好实现的) 2.使用找回密码的方式:通过邮箱找回密码 前端登录密码错误后 会显示   错误); 方法二 打开WP ...

  2. 【Linux常见问题】CentOS 6 root用户密码忘记,找回密码方法

    1.Linux的root密码修改不像Windows的密码修改找回,Windows的登录密码忘记需要介入工具进行解决.CentOS6和CentOS7的密码方法也是不一样的,具体如下: 2.centos ...

  3. 【Linux常见问题】CentOS 7 root用户密码忘记,找回密码方法

    1.开机按esc 2.选择CentOS Linux (3.10.0-693.......)     按 e 键: 3.光标移动到 linux 16 开头的行,找到 ro 改为 rw init=sysr ...

  4. java web 自定义错误页面 完整jsp错误页面代码(同时写错误日志) error.jsp

    1.首先配置web.xml  添加一下代码 <error-page> <error-code>500</error-code> <location>/e ...

  5. (进阶篇)PHP+Mysql+jQuery找回密码

    通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密 ...

  6. PHP+Mysql+jQuery找回密码

    通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密 ...

  7. ThinkPHP 3.2 用户注册邮箱验证帐号找回密码

    一.前言 当然现在有的网站也有手机短信的方式找回密码,原理就是通过发送验证码来验明正身,和发送邮件验证一样,最终还是要通过重置密码来完成找回密码的流程. 本文将使用PHP+Mysql+jQuery来实 ...

  8. 通过邮件找回密码功能的Java实现

    1.有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的功能我就不说了,重点讲找回密码. 2.参考别人 ...

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

    通过邮件找回密码功能的实现 1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的 ...

随机推荐

  1. IO流基础加强

    字节流对象:InputStream,OutputStream 缓冲字节流对象:BufferedInputStream , BufferedOutputStream 用法和字符流对象一样,但也有区别, ...

  2. PHP设计模式之:策略模式

    <?phpabstract class Strategy{    public abstract function AlgorithmInterface();} class ConcreteSt ...

  3. 能用存储过程的DBHelper类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  4. demo_02 less

    html 中的代码<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> &l ...

  5. js 通过function来定义函数

    什么是函数: 函数是完成某一功能的代码段. 函数是可重复执行的代码段. 函数方便管理和维护. 自定义一个函数: 通过function关键字来定义一个函数. 语法:   function 函数名称([可 ...

  6. css3多行省略号

    -webkit-line-clamp 概述: -webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中. ...

  7. dedecms织梦如何删除所有的文章?

    dedecms织梦如何删除所有的文章?dede一键删除所有文章的SQL命令:  DELETE FROM dede_addonarticle WHERE aid >= 1 and aid<= ...

  8. PM【terminal】

    More Knowledge More Performance More Time 资料模组化 以知识管理为基础的项目管理 规范:ethic

  9. eclipse + maven + jboss 遇到ClassNotFoundException

    在使用eclipse + maven + jboss开发过程中,碰到ClassNotFoundException, 原因应该是deployed包中未包含maven的依赖jar. 可以通过如下方法把依赖 ...

  10. Apache添加虚拟主机目录

    <VirtualHost 127.0.0.2:80> DocumentRoot d:/abcd ServerName 127.0.0.2:80</VirtualHost> &l ...