[英]How I match old and new password if I use a hash function?
我将用户密码作为纯文本存储在数据库中。 因此,更改密码很容易。 我用这个代码,
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
。 密码可能很难,所以使用它,然后去购物,及时为圣诞节:)
也...
我将用户密码作为纯文本存储在数据库中。 因此,更改密码很容易 。
强调我的。
你永远不应该存储纯文本密码,而且很容易改变也不是一个正当理由。 然而,荣幸认识到需要对此采取行动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.