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