密码修改机制

时间:2022-05-18 06:01:41
USer表:

Uniqid :用户唯一标示符号
UserName :用户名,邮箱名称唯一
UserPwd :密码(hash加密)
UserEmail :用户邮箱
Hash   :用于找回密码所使用的字符。




*:涉及到两个页面,找回密码页面、修改密码页面。

1、首先,用户点击找回密码链接,跳转到找回密码页面,页面上有两个input,一个是用来输入用户名,另一个用来输入邮箱。

2、找回密码页面后台代码处理情况是:
2.1、首先根据用户名,查找用户Email邮箱地址。
2.2、如果邮箱地址不为空,那么就意味着用户名正确,同时我们也得到了用户的邮箱地址。相反,则提示出用户名不存在。
2.3、在判断获取邮箱地址不为空时,我们同时生成一段标识码(hash码),然后用此值,修改相应用户中的Hash字段(用来在修改密码时判断,是否是正常的页面跳转修改,而不是非法操作)。
2.4、之后我们将用户名和生成的一段标识码(hash码,此时数据库中该用户的Hash字段已经存有此段编码)组装,然后进行重编码,之后连接到修改密码页面的url(../resetUserPass.php?p=dT1saXRvdSZ4PTAwZTc1MGZlNmZjOGNkNGYyMjgzMDA3MWJlZDNmZTAw),发送到用户邮箱。

3、用户在邮箱中接收到发送来的连接,点击之后跳转到修改密码页面。

4、修改密码页面,后台处理情况是:
3.1、前台页面,只有一个文本框和一个标签,文本框用来输入要修改的密码,标签来显示用户名。
3.2、首先解析发送来的标识码(p=dT1saXRvdSZ4PTAwZTc1MGZlNmZjOGNkNGYyMjgzMDA3MWJlZDNmZTAw),得到用户名和前面所生成的唯一标识码(hash码)。
3.3、之后,通过唯一标识码和用户名,修改密码(update User set UserPwd = 输入的新密码[经过加密] where UserName = 传来的用户名 and Hash = 唯一标示码)。(若修改的返回值若是1,则代表唯一标识码正确,用户名正确,密码修改成功。否则,密码修改失败。)