Webサイトにログインするためのjqueryダイアログモーダルボックスがポップアップ表示されます。ユーザーがログインをクリックすると、次のようにlogin.phpファイルへの投稿要求が行われます。
$.post(
'includes/login.php',
{ user: username, pass: password },
onLogin,
'json' );
ポストリクエストに入力する前に、そのパスワードでmd5を実行するにはどうすればよいですか?また、MD5()を使用してMySQLデータベースにユーザーのパスワードを保存しているので、保存されたバージョンのパスワードと送信されたパスワードのMD5を比較したいだけです。返信してくれてありがとう。
crypto-js は、多くの暗号化アルゴリズムを含む豊富なJavaScriptライブラリです。
必要なのは、単にCryptoJS.MD5(password)
を呼び出すだけです
$.post(
'includes/login.php',
{ user: username, pass: CryptoJS.MD5(password) },
onLogin,
'json' );
誰かがパスワードのプレーンテキストHTTPトラフィック(またはキャッシュ/ Cookie)をスニッフィングしている場合、パスワードをハッシュに変換するだけでは役に立ちません-ハッシュパスワードはプレーンテキストと同様に「再生」できます。クライアントは、パスワードを多少ランダムなもの(日付や時刻など)でハッシュする必要があります。「AUTH CRAM-MD5」のセクションを参照してください: http://www.fehcom.de/qmail/smtpauth.html
この場合、CryptoJSを使用することをお勧めします。
基本的に、CryptoJSは、ベストプラクティスとパターンを使用してJavaScriptに実装された標準的で安全な暗号化アルゴリズムのコレクションです。これらは高速で、一貫性のあるシンプルなインターフェイスを備えています。
したがって、パスワード文字列のhash(MD5)を計算する場合は、次のようにします。
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/md5.js"></script>
<script>
var passhash = CryptoJS.MD5(password).toString();
$.post(
'includes/login.php',
{ user: username, pass: passhash },
onLogin,
'json' );
</script>
したがって、このスクリプトはパスワード文字列のハッシュをサーバーに送信します。
その他のハッシュ計算アルゴリズムの詳細とサポートについては、次のWebサイトをご覧ください。
次のページをご覧になることをお勧めします。 http://pajhome.org.uk/crypt/md5/
ただし、パスワードの保護が重要な場合は、SHA256のようなものを実際に使用する必要があります(MD5は暗号的に安全なiircではありません)。さらに、TLSを使用して、httpsを使用できるように証明書を取得することを検討することもできます。
Jtへの応答。あなたは正しい、パスワードだけのHTMLは中間者攻撃の影響を受けやすい。ただし、サーバーからGUIDを使用してシードできます...
$.post(
'includes/login.php',
{ user: username, pass: $.md5(password + GUID) },
onLogin,
'json' );
これは、サーバーが各試行に対して新しいGUIDを生成するという点で、Man-In-The中間点を無効にします。
php jqueryを使用している場合、これが役立つ場合があります。
$.ajax({
url:'phpmd5file.php',
data:{'mypassword',mypassword},
dataType:"json",
method:"POST",
success:function(mymd5password){
alert(mymd5password);
}
});
phpmd5.phpファイルで:
echo json_encode($ _ POST ["mypassword"]);
jspluginsは必要ありません。 ajaxを使用して、php md5()に任せるだけです。