1

ユーザーパスワードをプレーンテキストとしてデータベースに保存します。そのため、パスワードを簡単に変更できます。私はこのコードを使用し、

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']同じではないと思います。

4

1 に答える 1

4

ユーザーが入力したパスワードを同等のハッシュ関数でハッシュし、それをデータベースに保存したものと比較するだけです。

while($row = mysql_fetch_array($result)){
 if($row['Password']==yourOneWayPasswordHashingFunction($opass))
  mysql_query("UPDATE information SET Password='$pass' WHERE Username='$name'");}

コメントで述べたように、を使用しますbcrypt。パスワードは難しい場合があるので、これを使用して、クリスマスにも間に合うように買い物に行きましょう :)

また...

ユーザーパスワードをプレーンテキストとしてデータベースに保存します。そのため、パスワードを簡単に変更できます

鉱山を強調します。

平文のパスワードは絶対に保存しないでください。簡単に変更できるというのは正当な理由ではありません。ただし、それについて何かをする必要があることを認識したことは称賛に値します。

于 2012-12-23T23:29:16.943 に答える