0

誰もが知っているように、Drupal は暗号化 + ハッシュ + ソルトを含む SHA2 メソッドを使用してパスワードを保存します。

Drupal の一部のクライアントで現在使用されているパスワードのリストがあります。システム全体をカスタム PHP に移行したため、同じパスワードを使用することはできません。そして、データベース内のすべての人に新しいパスワードを生成するように依頼したくはありません。

現在 MD5/SHA1 (PHP Mysql データベース) を使用している新しいシステムをサポートするために、SHA2 (Drupal - 512 暗号化) にあるすべてのパスワードを変更できる方法がある場合。

どんな助けでも大歓迎です。

4

4 に答える 4

4

あなたは本当にMD5に行きたくないのです。パスワードハッシュ方法に関する限り、それは死んでいます。最低限、Bcrypt のようなものに移行する必要があります。password_hash

誰かがログインし、パスワードが正しいことを確認したら、データベースでパスワードがハッシュされる方法を更新するチャンスです。弱い方法を使用している場合は、強力な方法に切り替えて、ユーザー レコードを保存します。あなたが何をしたか誰も知らないでしょう。

1年かそこら後に、その長引く責任が心配な場合は、いつでもすべての古い形式のパスワードを強制的に期限切れにすることができます. すべてのアクティブ ユーザーは影響を受けません。

于 2016-07-16T13:21:01.917 に答える
0

「遷移」を使用する必要があると思います。たとえば、新しいシステムを使用しますが、データベースには古いパスワードを使用します。

コードでは、ユーザーのログイン時にパスワードを取得し (例: $_POST['pwd'])、強力なアルゴリズム (MD5 ではない) を使用して暗号化します。次に、データベースの新しいフィールドに挿入できます。

したがって、新しいデータベースには、古いパスワードを含む「old_pwd」フィールドと、新しいアルゴリズムを使用した新しいパスワードを含む「pwd」フィールドを含めることができます。私によると、これはこの移行を行うのに最も簡単です。

于 2016-07-16T13:39:48.613 に答える
0

Drupal 7 と 8 のパスワード チェック コードはよく似ており、簡単に流用できます。Drupal コンポーネントに強い依存関係はありません。Drupal のハッシュのサポートをパスワード チェック コードに追加するのは非常に簡単です。Drupal のハッシュをデータベースに保存することで、ユーザーがパスワードを使用して認証できるようにします。

新しいハッシュ アルゴリズムに移行するには、認証が成功したときにパスワードを再ハッシュするだけです。このようにして、古いハッシュは時間の経過とともに置き換えられます。

Drupal には、透過的な更新または古い MD5 ハッシュを保証する同様のメカニズムがあります。user_check_password ()user_needs_new_hash()を見て、それがどのように行われるかを確認してください。

于 2016-07-16T21:17:31.620 に答える