如何重置使用 md5() 和 crypt() 生成的密码

How to reset password that is generated with md5() and crypt()

我正在处理我的项目,但我忘记了管理员用户的密码。这是用户 table:

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `email` varchar(50) NOT NULL,
  `password` varchar(32) NOT NULL,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;


INSERT INTO `users` (`id`, `email`, `password`, `name`) VALUES
(7, 'ikhlassons@gmail.com', '078bbb4bf0f7117fb131ec45f15b5b87', 'Ikhlas Sons'),
(10, 'wali_essa@hotmail.com', '078bbb4bf0f7117fb131ec45f15b5b87', 'essa');

谁能告诉我如何在 md5()cryp()

生成的 php 中重设密码

密码的生成方式如下:

$hash = crypt($entered_password,"");
$hash = md5($hash);

这应该有效:

$hash = crypt("passpass","");
$hash = md5("passpass");
echo $hash;

或者这样:

$hash = crypt("passpass","");
echo $hash;

记住您的密码是passpass。将代码复制到 mysql 数据库中的 users.password 字段。并在登录时使用passpass作为密码。

您需要一个额外的列,例如 password_reset_token。当用户想要恢复他的密码时,您的应用程序必须生成一个(足够长的)随机字符串并将其存储在 password_reset_token 字段中。

然后您创建一个脚本,通过 $_GET(即:example.com/password-reset/?token=982dh89h2w9h92hd)接收该令牌,检查它是否存在于用户 table 中,如果正确,则提示一个表单为该用户重置密码。

您必须通过电子邮件将 link (example.com/password-reset/?token=982dh89h2w9h92hd) 发送给用户,告诉他单击它以重置密码。