我会尽力解释最好的..
在我的项目开始时,我只是以纯文本格式存储密码,现在在将其上传到服务器之前,我想用 MD5 对它们进行哈希处理,当用户登录时,他像以前一样使用简单密码..
只是他们应该在数据库中散列..
我应该怎么做,而不改变很多编码和登录脚本?
以及如何在简单的登录页面中添加记住密码功能和忘记密码功能?任何可以解决我的问题的链接。
我正在研究 php 和 sql。
至于你的 MD5 问题:
UPDATE users SET password = MD5(password)
在您验证用户凭据的登录脚本中,您也只需添加 MD5 函数:
SELECT id FROM users WHERE login = :login AND password = MD5(:password)
您关于密码丢失功能的第二个问题对 SO有广泛的报道。
对于您的第一个问题,请运行此查询
UPDATE urusertable SET password=md5(password);
对于您的第二个问题,当用户检查您时,请让我保持登录复选框检查它,然后为您想要的时间设置一个 cookie,,
if(isset($_POST['remember'])){
setCookie('rememberhim','whateverurvalue',time()+3600*7);
}
然后在用户每次访问您的站点时检查 cookie。如果您只想自动填充登录字段,还将用户名和密码存储在 cookie 中,但这是自动填充的一种非常糟糕的做法。
PHP 有一个 MD5 函数(你可能知道):
$password = mysql_result(mysql_query(SELECT `password` from `users`), 1);
$password = md5($password);
mysql_query(UPDATE `users` set `password` = '$password');
(显然您需要调整上面的代码以使用您的数据库结构)
如果您的数据库使用 PHPMYADMIN,那么还有一个内置的 MD5 函数,理论上您可以使用它来一次更新所有表。