0

私のサイトがパスワードをハッシュする方法を変更する方法があるかどうか疑問に思っていました. 私のコーダーの友人は、sha512 ハッシュにソルトを追加しなかったとき、最も賢くはありませんでした。だから今はとても不安定で、それを変えたいと思っています。古いハッシュタイプを持つ誰かがログインし、ソルトを追加した後に変数を true に設定するときに、再ハッシュする複雑なコードを作成することを考えていました。または、現在ハッシュされているパスワードを取得して、何らかの方法でソルトを融合することもできます。必要がなければ、ユーザー データベースをリセットしたくありません。どんなアイデアでも役に立ちます。私もかなりのPHP初心者なので、コードを含めるかどうかを説明してください。

このメソッドを使用してハッシュされます。

<?php hash('sha512',"passwordhere") ?>
4

3 に答える 3

2
  1. ユーザー テーブルを変更して、'salt' 列、デフォルト値の 'NULL' を含めます。
  2. ログイン コードを変更して、ユーザーがソルトを持っているかどうかを確認します。
    • はいの場合、salted ハッシュを比較してログインします
    • いいえの場合:
      1. 無塩ハッシュを比較します。
      2. ランダムソルトを生成します。
      3. あなたの塩辛いハッシュを生成します。
      4. 新しいソルトとハッシュをデータベースに保存します。
      5. ログインプロセスを続行します。

もちろん、登録、パスワードの変更/回復などのためにコードを更新する必要もあります。

または、「salt」列の代わりに「hash_ver」列を配置し、それを使用して、使用する検証方法とハッシュをいつ更新するかを決定できます。そうすれば、ソルトを bcrypt のようなハッシュにパックするハッシュ方法を使用したい場合、扱っているハッシュのタイプを把握しようとして行き詰まることはありません。

于 2013-09-10T23:22:44.437 に答える
0
$old_hash = hash('sha512',"passwordhere");
$salt = ''; // Generate salt here
$new_hash = hash('sha512', $old_hash.$salt) ;
于 2013-09-10T23:24:02.050 に答える