私は本当にここで質問することさえ知りません。私の問題の声明は簡単です:私は塩でDBにパスワードを格納し、保存されたパスワードに対して入力されたパスワードを検証し、ユーザーがログオンしようとするたびにランダムなチャレンジワードを使用してパスワードを認証する必要があります。私はPHP/javascriptを使用しています。パスワードを認証して検証するにはどうすればよいですか?
これを理解しようとすると、私はHTMLフォームで挑戦単語を渡し、入力したパスワードをその単語でハッシュしても、サーバー上のパスワードを認証できますが、チャレンジワードとパスワードを分けることができないので、私はDBの塩漬けパスワードに対してそれを検証することができます。パスワードをサーバーに送ってチャレンジワードなしでハッシュした場合、私はそれを検証することができますが、今は信頼性の高い認証ができません。
私はキーで暗号化し、パスワードを検証しながらキーを認証できるように、ある種の2ウェイアルゴリズムが必要だと思います。どうすればいいのですか?それができないのであれば、私は何をやっていますか?
明確にするために、ランダムチャレンジは、通過中にパスワードを保護することを目的としていますか?あるいは、それが人間であるかそれとも類似しているかを証明するための認証メカニズムですか? –
これを理解しようと努力して、私は "Geeklog - Secure CMS"というPHPブログのソースコードを見ました。彼らはユーザーのパスワードを無料で明瞭に送信し、サーバー上のMD5を使用してパスワードを「エンコード」します。だから、おそらく私の質問は、 "どのようなタイプのシステムに対して、私はパスワードと挑戦の言葉を使ってパスワードの検証と認証を実装すべきですか? – James
また、phpBBはパスワードを無料で明瞭に送信するようです。私は問題を考える上で終わったと思う。 – James