-1

我会尽力解释最好的..

在我的项目开始时,我只是以纯文本格式存储密码,现在在将其上传到服务器之前,我想用 MD5 对它们进行哈希处理,当用户登录时,他像以前一样使用简单密码..

只是他们应该在数据库中散列..

我应该怎么做,而不改变很多编码和登录脚本?

以及如何在简单的登录页面中添加记住密码功能和忘记密码功能?任何可以解决我的问题的链接。

我正在研究 php 和 sql。

4

3 回答 3

2

至于你的 MD5 问题:

UPDATE users SET password = MD5(password)

在您验证用户凭据的登录脚本中,您也只需添加 MD5 函数:

SELECT id FROM users WHERE login = :login AND password = MD5(:password)

您关于密码丢失功能的第二个问题对 SO有广泛的报道。

于 2013-05-02T06:27:44.160 回答
0

对于您的第一个问题,请运行此查询

UPDATE urusertable SET password=md5(password);

对于您的第二个问题,当用户检查您时,请让我保持登录复选框检查它,然后为您想要的时间设置一个 cookie,,

if(isset($_POST['remember'])){
setCookie('rememberhim','whateverurvalue',time()+3600*7);
}

然后在用户每次访问您的站点时检查 cookie。如果您只想自动填充登录字段,还将用户名和密码存储在 cookie 中,但这是自动填充的一种非常糟糕的做法。

于 2013-05-02T06:51:02.043 回答
-1

PHP 有一个 MD5 函数(你可能知道):

$password = mysql_result(mysql_query(SELECT `password` from `users`), 1);
$password = md5($password);
mysql_query(UPDATE `users` set `password` = '$password');

(显然您需要调整上面的代码以使用您的数据库结构)

如果您的数据库使用 PHPMYADMIN,那么还有一个内置的 MD5 函数,理论上您可以使用它来一次更新所有表。

于 2013-05-02T06:33:18.207 回答