邮箱找回密码
http://www.iteye.com/topic/634992
最近要开发个功能邮箱找回密码的功能。
大致思路就是发送邮件→连接邮件里的URL→修改密码
重点就是如何生成这个url和如何解析这个url.
需要注意的是一个url只能修改一次密码,当同一帐号发送多封邮件,只有最后一封邮件的url
是有效的
初步想法这个url有3个参数:用户名,过期时间,数字签名.
数字签名 = MD5(用户名+'$'+过期时间+密钥key)
解析这个url的时候先验证数字签名,在验证过期时间。
这个方法的弊端在于如果谁知道密钥key,就能修改任意用户密码。
为了保证这个密钥key的安全性,密钥key在应用每次启动的时候随机生成。
,还剩一个问题,就是一个url只能修改一次密码。
这样的话就需要每次修改完这个密码以后,给做一个标记(在内存中保存用户名,
过期时间,数字签名),然后现在每次解析url的时候先验证签名,
然后验证该url是否修改过密码,最后验证过期时间。
内存里的标记在超过过期时间以后是需要清除的。需要做一个定时任务一天清除以下内存里的
过期标记。好象这样就差不多拉。
然后开始开发,开发完以后本机跑的没啥问题。
忽然发现一个问题,生产环境下是多个应用的集群环境,这样的话多个应用随机生成的
密钥key是不一样的。
那这样密钥key的生成后,只有放到数据库比较好拉。
最后的方案:
数字签名 = MD5(用户名+'$'+过期时间+密钥key)
数据库字段(用户名(主键),密钥key,过期时间)
url参数(用户名,数字签名)
密钥key的生成:在每一个用户找回密码时候为这个用户生成一个密钥key
然后生成过期时间,生成数字签名,生成url,发送邮件.
saveOrUpdate(用户名,密钥key,过期时间)
解析url:首先根据用户名从数据库中查找出密钥key和过期时间,没有则表示该请求
是伪造的或者过期的,然后验证签名,验证过期时间,都验证通过,就可以修改密码,
密码修改完以后,删除数据库中的记录。
还需要加一个定时任务,删除数据库中当前时间大于过期时间的记录。
分享到:
相关推荐
"Java邮箱找回密码"功能是一种常见的用户身份验证机制,它允许用户通过已注册的电子邮件地址重置丢失或忘记的密码。下面将详细介绍如何使用Java来实现这个功能,以及相关的知识点。 首先,我们需要一个用户模型...
PHP+MYSQL通过邮箱找回密码开发源码
spring.mail.password=你的授权码(非邮箱密码) spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true ``` 这里,`username`是你的QQ邮箱账号,`password`是通过QQ...
在Java编程领域,邮箱找回密码是一个常见的功能,用于帮助用户在忘记密码时通过验证绑定的电子邮件地址来重置账户安全信息。本程序的核心是利用JavaMail API实现邮件发送功能,结合后端验证逻辑来完成这一过程。以下...
在找回密码过程中,Ajax可以实现无刷新的用户体验,当用户输入邮箱后,前端通过Ajax异步发送请求到后台,验证邮箱是否有效,避免了页面的频繁跳转,提高了交互性。 3. **用户验证**:在验证邮箱时,PHP需要与数据库...
在找回密码的流程中,Ajax可以用于无刷新地验证用户输入的邮箱地址,发送验证码请求,以及验证用户输入的验证码。这样,用户无需等待整个页面刷新,就能看到操作结果,提高了用户体验。 项目中的具体实现可能包括...
2. **邮箱验证机制**:在“邮箱找回密码”功能中,系统首先需要验证用户的邮箱地址是否与数据库中的记录匹配。这通常涉及到用户输入邮箱后,服务器端查询数据库的过程,确保邮箱是已注册的。 3. **密码重置令牌**:...
本文将详细讨论如何使用PHP和Ajax技术实现一个邮箱密码找回系统。PHP是一种服务器端脚本语言,常用于构建动态网站,而Ajax(异步JavaScript和XML)则允许我们在不刷新整个页面的情况下更新网页部分内容,提高用户...
本文将详细解析“PHP源码_邮箱密码找回功能开发源码”这一主题,旨在帮助开发者理解和实现基于PHP的邮箱密码找回功能。 首先,我们要明白密码找回功能的基本流程。它通常包括以下几个步骤: 1. 用户在登录界面点击...
public function send_email($judge_code,$user_email,$username){ import("@.ORG.My.base_mail");... $Subject='[111]找回您的帐户密码'; //发送邮件 $mail->SendMail($user_email,$message,$Subject); }
E-mail邮箱密码找回工具 通过邮件客户端找回邮箱密码 你是否遇到了这样的麻烦,你长期使用foxmail,outlook等邮件客户端收发邮件,直到有天你需要到网站上去登录自己的邮箱,可是时间长了,邮箱密码却忘记了.如何找回邮箱...
在Python编程领域,邮箱登录、邮箱验证码注册以及找回密码等功能是常见的Web应用需求。这些功能涉及到用户认证、安全性和用户体验等多个方面。以下将详细介绍如何使用Python来实现这些功能。 首先,邮箱登录通常...
C# 利用QQ邮箱找回用户密码 本文将详细介绍如何使用C#语言通过QQ邮箱找回用户密码,包括获得QQ授权码、设置第三方客户端、使用SMTP协议发送邮件的步骤和代码实现。 获得QQ授权码 在使用QQ邮箱找回用户密码之前,...
忘记了FOXMAIL中邮箱的密码。就可用此工具快速找回了,很实用。
Ecmall是一款开源的电子商务系统,它提供了多种用户登录和找回密码的方式,其中包括通过注册邮箱来重置密码。针对"Ecmall_邮箱找回密码问题",我们来深入探讨一下可能遇到的问题及解决方案。 首先,Ecmall的邮箱...
在IT行业中,邮箱验证和找回密码是Web应用中不可或缺的安全机制。本文将深入探讨如何使用Java来实现这一功能,特别是通过JavaMail API进行邮箱验证以及相关的安全策略。 首先,JavaMail API是Java平台上的一个开源...
综上所述,邮箱方式找回密码是互联网服务中常见且重要的功能,它涉及到用户账户安全、网络通信安全以及后端验证逻辑等多个方面,对于开发者来说,理解并正确实现这一功能是至关重要的。同时,考虑到用户友好性和安全...
在网站设计中,邮箱找回密码是...总的来说,"网站常用邮箱找回密码流程"是一个综合性的系统工程,涵盖前端交互、后端处理、数据库操作、网络通信等多个层面,对于开发者来说,理解和实现这一功能需要扎实的多方面技能。
在本文档中,我们将详细介绍找回密码的功能,该功能可以将密码发到163.QQ等任意邮箱。该功能需要使用JAVA语言来实现,下面我们将逐步讲解实现该功能的步骤。 首先,我们需要了解邮箱绑定的注意事项。邮箱绑定是指将...