找回密码重新登录码

百度联盟 - 找回密码
电子邮件:
看不清?换一张
尊敬的会员
您好,重置密码信息已发送至您的邮箱
,请注意查收,密码修改请在72小时内完成。
如果没有收到密码重置邮件,请到垃圾邮箱中找找看,或者点击重新发送密码重置邮件。
加载中,请稍候...通过邮件找回密码功能的实现
1、最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回。现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回。通过java发送邮件的功能我就不说了,重点讲找回密码。
2、参考别人的思路:发送邮件&请求邮件里的URL&验证url&{验证成功修改密码,不成功跳转到失败页面}
重点就是如何生成这个url和如何解析这个url.&需要注意的是一个url只能修改一次密码,当同一帐号发送多封邮件,只有最后一封邮件的url 邮箱
3、加密能防止伪造攻击,一次url只能验证一次,并且绑定了用户。生成url: &&可以用UUID生成随机密钥。&
数字签名&= MD5(用户名+'$'+过期时间+&$&+密钥key)&数据库字段(用户名(主键),密钥key,过期时间)&url参数(用户名,数字签名) ,密钥key的生成:在每一个用户找回密码时候为这个用户生成一个密钥key ,
url example::80/CardSSHOK/checkLink?sid=K3xHOi4o/UihH5QYWBDfYA==&userName=123
生成过期时间,生成数字签名,生成url,发送邮件. &&AddU(用户名,密钥key,过期时间)&
使用到的数据库如下&
package com.soq.card.web.
import java.sql.T
import java.util.L
import java.util.UUID;
import org.hibernate.C
import org.hibernate.S
import org.hibernate.SessionF
import org.hibernate.criterion.R
import org.springframework.orm.hibernate3.HibernateT
import com.soq.card.biz.UserH
import com.soq.card.entity.U
import com.soq.card.tools.DB
import com.soq.card.tools.M
import com.soq.card.tools.Md5;
import com.soq.card.web.base.BaseA
* @author javen
public class PassEmailAction extends BaseAction {
private UserHander userH
private String userN
public String sendmail() {
HibernateTemplate ht = this.getUserHander().getUsersDAO().getHibernateTemplate();
SessionFactory factory = ht.getSessionFactory();
Session session = factory.openSession();
Criteria criteria = session.createCriteria(Users.class);
criteria.add(Restrictions.eq("loginName", email));
List&Users& list = criteria.list();
if (list.size() & 0) {
users=list.get(0);
Mail mail = new Mail();
String secretKey = UUID.randomUUID().toString(); // 密钥
Timestamp outDate = new Timestamp(System.currentTimeMillis() + 30 * 60 * 1000);// 30分钟后过期
long date = outDate.getTime() / 1000 * 1000;// 忽略毫秒数
mySql 取出时间是忽略毫秒数的
DBhepler bhepler=new DBhepler();
String sql="update users set outDate=?,validataCode=? where loginName=?;";
String str[] ={outDate+"",secretKey,users.getLoginName()};
bhepler.AddU(sql, str);
//this.getUserHander().getUsersDAO().getHibernateTemplate().update(users); // 保存到数据库
System.out.println("
UserName&&&& "+users.getUserName());
String key =users.getUserName() + "$" + date + "$" + secretK
System.out.println(" key&&&"+key);
String digitalSignature = Md5.md5(key);// 数字签名
String path = this.getRequest().getContextPath();
String basePath = this.getRequest().getScheme() + "://"
+ this.getRequest().getServerName() + ":"
+ this.getRequest().getServerPort() + path + "/";
String resetPassHref = basePath + "checkLink?sid="
+ digitalSignature +"&userName="+users.getUserName();
String emailContent = "请勿回复本邮件.点击下面的链接,重设密码&br/&&a href="
+ resetPassHref + " target='_BLANK'&" + resetPassHref
&a href=" + resetPassHref
+ " target='_BLANK'&点击我重新设置密码&/a&"
+ "&br/&tips:本邮件超过30分钟,链接将会失效,需要重新申请'找回密码'" + key
+ "\t" + digitalS
mail.setTo(email);
mail.setFrom("XX");// 你的邮箱
mail.setHost("");
mail.setUsername("");// 用户
mail.setPassword("CXXX");// 密码
mail.setSubject("[二维码名片]找回您的账户密码");
mail.setContent(emailContent);
if (mail.sendMail()) {
System.out.println(" 发送成功");
this.getRequest().setAttribute("mesg", "重置密码邮件已经发送,请登陆邮箱进行重置!");
return "sendMail";
this.getRequest().setAttribute("mesg", "用户名不存在,你不会忘记邮箱了吧?");
return "noUser";
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return null;
public String checkResetLink() {
System.out.println("sid&&&" + sid);
if (sid.equals("")
|| userName.equals("")) {
this.getRequest().setAttribute("mesg", "链接不完整,请重新生成");
System.out.println("&&&&& null");
return "error";
HibernateTemplate ht = this.getUserHander().getUsersDAO().getHibernateTemplate();
SessionFactory factory = ht.getSessionFactory();
Session session = factory.openSession();
Criteria criteria = session.createCriteria(Users.class);
criteria.add(Restrictions.eq("userName", userName));
List&Users& list = criteria.list();
if (list.size()&0) {
users=list.get(0);
Timestamp outDate = (Timestamp) users.getOutDate();
System.out.println("outDate&&&"+outDate);
if(outDate.getTime() &= System.currentTimeMillis()){ //表示已经过期
this.getRequest().setAttribute("mesg", "链接已经过期,请重新申请找回密码.");
System.out.println("时间 超时");
return "error";
String key = users.getUserName()+"$"+outDate.getTime()/+"$"+users.getValidataCode();//数字签名
System.out.println("key link》》"+key);
String digitalSignature = Md5.md5(key);// 数字签名
System.out.println("digitalSignature&&&&"+digitalSignature);
if(!digitalSignature.equals(sid)) {
this.getRequest().setAttribute("mesg", "链接不正确,是否已经过期了?重新申请吧.");
System.out.println("标示不正确");
return "error";
//链接验证通过 转到修改密码页面
this.getRequest().setAttribute("user", users);
return "success";
this.getRequest().setAttribute("mesg", "链接错误,无法找到匹配用户,请重新申请找回密码.");
System.out.println("用户不存在");
return "error";
public Users getUsers() {
public void setUsers(Users users) {
this.users =
public UserHander getUserHander() {
return userH
public void setUserHander(UserHander userHander) {
this.userHander = userH
public String getEmail() {
public void setEmail(String email) {
this.email =
public String getSid() {
public void setSid(String sid) {
this.sid =
public String getUserName() {
return userN
public void setUserName(String userName) {
this.userName = userN
补充1:Timestamp类型对象在保存到数据的时候 毫秒精度会丢失。比如: 10:30:10.234 &存到mysql数据库的时候 变成& 10:30:10.0。时间变得不相同了,sid 匹配的时候不会相等。 所以我做了忽略精度的操作。
补充2:解决linux下面title中文乱码
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
mailMessage.setSubject(MimeUtility.encodeText(mailInfo.getSubject(), "UTF-8", "B"));
//解决linux邮件title乱码
补充3:怎么不直接把sid插入到users表呢。验证的时候直接比较sid就ok了。
源码下载地址 &链接:/s/1sj1LBf3 密码:fa4x
阅读(...) 评论()
友情链接:全球最新的免费资源发布区
WordPress忘记密码找回登录密码的四种行之有效的方法
& 日 17:57 &
WordPress的管理员登录密码忘记了是经常有的事情,在文章中,部落有讲到高档大气上档次的Wordpress主题会更加容易通过国外网赚广告联盟的审核,于是就给自己放在Godaddy主机上的英文Wordpress换了个好看的主题模板。
换了WP主题之后第二天却发现不能登录了,无语的是主题已经去掉了Wordpress的登录错误反馈提示,重复了无数次了最终还得走向找回Wordpress密码的道路。本篇文章就归纳总结了四种找回Wordpress登录密码的方式。
自带的邮件找回密码方式是最简单的,前提是主机支持PHP Mail()函数。如果不支持此函数,我们直接通过PhpMyAdmin修改密码的MD5码来重置密码,更快捷的方式就是用SQL来执行修改密码,或者直接用Wordpress密码重置文件,方便快捷。
更多的有关Wordpress使用的经验与技巧可参考:
1、教程总结:
2、头像加速:
WordPress忘记密码找回登录密码的四种行之有效的方法
PS:更新,感谢同学提供的方法,登入phpMyAdmin后,先从左边选自己的数据库,然后点上面的 SQL 标签页,执行下面命令:
UPDATE `wp_users` SET `user_pass`='$P$BWZhQxx/R9UCBgECUhxsV0EKfqfEh31' WHERE `user_login`='freehao123'
然后使用用户名:freehao123,密码:admin 登入。注意如果你的用户名是其它的,请在上面的命令中替换,登录时使用这个用户名登录。
一、最简单的找回Wordpress密码:后台用邮件直接找回
1、忘记了Wordpress登录密码,直接使用Wordpress登录后台的“找回密码”,输入你的管理员邮箱,就会收到重置密码的邮件了,点击重置链接,设置新的密码即可。
2、不过,使用后台直接找回密码有两个前提:一是你当初安装Wordpress时填写的是自己的邮箱,二是你的主机可以发送重置密码的邮件,二者缺一,则会导致找回密码失败。
二、最直接的重置Wordpress密码:PhpMyAdmin修改MD5
1、进入到主机的PhpMyAdmin管理界面,这是老版本的空间管理SQL数据库的地方。
2、注意现在新购买的Godaddy主机都是采用Cpanel面板了,数据库中有PhpMyAdmin管理链接。
3、进入到PhpMyAdmin后,点击wp_users这个表。
4、再点击修改用户参数。(注意:user_login是登录名,默认的是admin,如果你这之前改过用户名,则显示的是其它的)。
5、在这里将user_pass值改成:5d41402abc4b2a76bc592,执行,保存。
6、完成后,你就可以使用密码:hello 来登录你的Wordpress了,登录到Wordpress后台后要记得马上修改密码。
三、最快捷的修改Wordpress密码:执行SQL命令
1、进入到PhpMyAdmin的SQL执行命令页面,执行以下命令:
update wp_users set user_pass=md5("123456") where user_login='admin';
2、123456是你的Wordpress新密码,admin是管理员账号。执行完了命令后,你就可以用新的密码来登录Wordpress了。
四、最方便的设置Wordpress新密码:用PHP文件重置密码
PS:日更新,感谢
博主提供了新的重置Wordpress密码的PHP文件:。将此文件上传到你的网站根目录,然后输入所有关于你站点的MYSQL信息和需要更改的WordPress帐号及密码,点击“重新设定密码”就行了。该PHP工具在使用后会尝试自动删除,但是如果删除失败,记得自己删除这个文件来确保网站的安全。
1、如果你没有权限进入数据库管理系统,或者不想去那么麻烦地使用PhpMyAdmin,则可以试试用PHP文件重置Wordpress密码的方法。
2、将以下代码复制,保存为wppw.php文件。(代码来自:)
&?php/*你的数据库服务器地址,一般保持默认*/$servername = "localhost:3306";/*数据库用户名*/$phpMyadminUser = "root";/*数据库密码*/$phpMyadminKey = "yiduqiang";/*数据库名称*/$phpMyadminName = "test";/*wordpress数据表格前缀*/$QZ = "wp_";/*你要设置的wordpress新密码*/$NewKey = "yiduqiang";/*你要设置新密码的用户名*/$wordpress_User = "yiduqiang";?&&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&&html xmlns="https://www.w3.org/1999/xhtml"&&head&&meta http-equiv="Content-Type" content="text/ charset=utf-8" /&&title&wordpress密码找回工具&/title&&/head&&body&&?phperror_reporting(0);if(!mysql_connect($servername,$phpMyadminUser,$phpMyadminKey)){&&& echo "对不起,数据库链接出错。&br /&";}else{&&& echo "数据库链接成功。&br /&";&&& mysql_select_db($phpMyadminName,mysql_connect($servername,$phpMyadminUser,$phpMyadminKey));&&& if (!mysql_query("update ".$QZ."users set user_pass='".md5($NewKey)."' where user_login='".$wordpress_User."'"))&&& {&&&&&&& echo "对不起,修改密码失败。";&&& }&&& else&&& {&&&&&&& echo "修改密码成功。";&&& }}?&&/body&&/html&
3、或者直接下载我已经保存好的wppw.php文件:。打开wppw.php文件,将数据库用户名、密码、名称等改成你的,还有WP的新密码。
4、特别注意:有些主机的数据库Host地址可能不是默认的Localhost,例如Godaddy的主机就是一连串的URL地址。
4、将wppw.php文件用FTP的方式上传到你的网站的根目录下。
5、然后打开:https://域名/wppw.php,页面会提示你密码修改成功。如果有提示你数据库连接错误,请返回仔细检查wppw.php中的数据库部分信息有没有错误。
五、Wordpress找回密码方法小结
1、使用Wordpress自带的找回密码功能是最简单最方便的,如果主机不支持php mail()函数,可以使用SMTP来代替,方法:。
2、Wordpress上传重置密码的PHP文件在使用完了之后要记得删除,以免出现安全隐患。在使用PhpMyAdmin执行SQL命令前要记得备份数据,以免失败导致数据丢失。
文章出自:
版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。 禁止全文转载。
您或许对下面这些文章有兴趣:&&&&&&&&&&&&&&&&&&&&本月吐槽辛苦排行榜
免费资源部落博主
经常混迹于各种免费资源中,尝鲜后乐于分享给他人。用WP搭建了部落博客,没事儿就折腾Wordpress,喜欢找免费空间,但只求精,稳定,耐用。有时也会介绍一点关于建站的知识和主机、服务器的使用心得与体会。
TA的专栏:&&|&&
关于本文的作者
所属分类:
链接地址:
浏览前页:
浏览后页:
部落快速搜索栏
各类专题梳理
网站导航栏
免费资源重点推荐
最新文章推荐
部落最新评论列表
部落本月最受关注的热点
(热度92℃) (热度89℃) (热度86℃) (热度72℃) (热度71℃) (热度70℃) (热度70℃) (热度68℃) (热度67℃) (热度60℃) (热度58℃) (热度56℃) (热度54℃) (热度54℃) (热度49℃) (热度46℃) (热度43℃)
部落本月踩得最多的宝贝
(踩7,691次) (踩6,997次) (踩5,294次) (踩4,069次) (踩3,701次) (踩3,563次) (踩3,115次) (踩2,941次) (踩2,916次) (踩2,881次)
免费资源部落,是一个致力发布和推广来自世界各地的免费资源,包括多样实用的免费空间、各种优秀的免费软件、各样可用的免费网盘等个人博客网站。站长qi是一位很普通不过的人,长期关注网络空间、互联网、软件应用、程序开发与设计、网络应用等。免费资源部落成立的目的就是希望与更多人分享网络快乐与精彩!本站持续修改完善中,如遇不便还请谅解^_^客服电话:找回密码 - 云之家
使用邮箱找回
使用手机找回
注册邮箱:
图形验证码:

我要回帖

更多关于 i小米com找回账户密码 的文章

 

随机推荐