如何将密码从纯文本格式加密到MD5哈希

时间:2013-05-02 06:24:38

标签: php html

我会尽力解释..

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

只是他们应该在数据库中进行哈希..

我应该怎样做,而不会在编码和登录脚本方面做太多改变?

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

我正在研究php和sql。

3 个答案:

答案 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功能,您理论上可以使用它来一次更新所有表。