AjaxとPHPを使ったワンタイムパスワード方式のログイン認証 即時認証にはAjaxの類が必要ですが、ワンタイムパスワード(チャレンジ&レスポンス)方式を実装するのにAjaxである必要は必ずしもありません。先ずはチャレンジ&レスポンス方式とは一体何なのかという所から。 webアプリの場合はクライアントとは通常、webブラウザの事。便宜上MD5としているけれど別のハッシュ関数、SHA1等でも問題ありません。重要なのは、認証に際して通信路を流れるのは、毎回変化するランダムなCKとそれを元にハッシュしたレスポンスキーだけという事。例えCKとレスポンスキーが盗聴されたとしても、盗聴者は元になった生のパスワードが何であったのかは推測不可能です。(ただし、最近はMD5も色々と焦げ臭くなってきたので絶対不可能とも言えない) PHP+Javascriptでこれを実現しようとした場合、例えば以下のような流れ