如何重置使用 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()
密码的生成方式如下:
$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
) 发送给用户,告诉他单击它以重置密码。