赞
踩
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类,在之前文章中有代码:
关于wordpress忘记密码 找回密码的方式
1.通过直接修改数据库中密码的加密字符(如果wordpress的版本不同,那么此方法是不好实现的) 2.使用找回密码的方式:通过邮箱找回密码 前端登录密码错误后 会显示 错误); 方法二 打开WP ...
【Linux常见问题】CentOS 6 root用户密码忘记,找回密码方法
1.Linux的root密码修改不像Windows的密码修改找回,Windows的登录密码忘记需要介入工具进行解决.CentOS6和CentOS7的密码方法也是不一样的,具体如下: 2.centos ...
【Linux常见问题】CentOS 7 root用户密码忘记,找回密码方法
1.开机按esc 2.选择CentOS Linux (3.10.0-693.......) 按 e 键: 3.光标移动到 linux 16 开头的行,找到 ro 改为 rw init=sysr ...
java web 自定义错误页面 完整jsp错误页面代码(同时写错误日志) error.jsp
1.首先配置web.xml 添加一下代码 500/e ...
(进阶篇)PHP+Mysql+jQuery找回密码
通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密 ...
PHP+Mysql+jQuery找回密码
通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密 ...
ThinkPHP 3.2 用户注册邮箱验证帐号找回密码
一.前言 当然现在有的网站也有手机短信的方式找回密码,原理就是通过发送验证码来验明正身,和发送邮件验证一样,最终还是要通过重置密码来完成找回密码的流程. 本文将使用PHP+Mysql+jQuery来实 ...
通过邮件找回密码功能的Java实现
1.有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的功能我就不说了,重点讲找回密码. 2.参考别人 ...
Java实现邮箱找回密码 --转载
通过邮件找回密码功能的实现 1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的 ...
随机推荐
SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告
题目大意:一个$N
[LeetCode] Search Insert Position 搜索插入位置
Given a sorted array and a target value, return the index if the target is found. If not, return the ...
php url编码解码
urlencode 函数编码 urldecode 函数解码
COJ975 WZJ的数据结构(负二十五)
试题描述 输入一个字符串S,回答Q次问题,给你l,r,输出子序列[l,r]的最长连续回文串长度. 输入 第一行为一个字符串S. 第二行为一个正整数Q. 接下来Q行每行为l,r. 输出 对于每个询问,输 ...
c# 之五行地支
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
leetcode学习笔记--开篇
1 LeetCode是什么? LeetCode是一个在线的编程测试平台,国内也有类似的Online Judge平台.程序开发人员可以通过在线刷题,提高对于算法和数据结构的理解能力,夯实自己的编程基础. ...
oracle - 创建数据库
在服务器端的oracle,用户有点差异,当 我通过 'sqlplus / as sysdba' 命令登陆后,并不能创建数据库,sysdba拥有最高的系统权限,登陆后是 sys,以as sysdba登录 ...
WPF用样式实现TextBox的虚拟提示效果
[版权声明]本文为博主原创,未经允许禁止用作商业用途,如有转载请注明出处. 话说好多软件和网站都能实现虚拟提示,好吧这个名词是我自己起的,因为我也不知道这么形容这个效果. 效果描述:在TextBox没 ...
jQuery - ajaxUpLoad.js
ajaxFileUpload是一个异步上传文件的jQuery插件 语法:$.ajaxFileUpload([options]) options参数说明: 参数 作用 url 上传处理程序地址 file ...
synchronized的四种用法
一 修饰方法 Synchronized修饰一个方法很简单,就是在方法的前面加synchronized,synchronized修饰方法和修饰一个代码块类似,只是作用范围不一样,修饰代码块是大括号括起 ...
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。