我将用户密码以纯文本的形式存储在数据库中。所以修改密码很容易。我使用以下代码
while($row = mysql_fetch_array($result)) {
if($row['Password']==$opass)
mysql_query(
"UPDATE information SET Password='$pass' WHERE Username='$name'"
);
}
首先我检查用户是否正确输入了他的旧密码($opass
),然后我允许他将其更改为新密码($pass
)。我想我可以检查旧密码,因为我把它存储为纯文本。但是如果我使用任何哈希算法,if($row['Password']==$opass)
代码如何工作?我认为$opass
和$row['Password']
是不一样的
使用等效的散列函数对用户输入的密码进行散列,并将其与存储在数据库中的密码进行比较。
while($row = mysql_fetch_array($result)){
if($row['Password']==yourOneWayPasswordHashingFunction($opass))
mysql_query("UPDATE information SET Password='$pass' WHERE Username='$name'");}
正如我在评论中提到的,使用bcrypt
。密码可能很难,所以使用这个,然后去购物,在圣诞节也及时:)
也……
我将用户密码以纯文本形式存储在数据库中。所以很容易修改密码
<子>强调我的。子>
永远不要存储纯文本密码,而且很容易更改不是一个有效的理由。不过,还是要感谢你认识到有必要为此做点什么。