ホームページ  >  記事  >  バックエンド開発  >  php MD5暗号化の詳しい説明

php MD5暗号化の詳しい説明

WBOY
WBOYオリジナル
2016-07-25 09:04:331585ブラウズ
  1. mysql>CREATE TABLE members (
  2. ->ユーザー名 CHAR(14) NOT NULL,
  3. ->パスワード CHAR(32) NOT NULL,
  4. ->PRIMARY KEY(ユーザー名)
  5. ->);
コピーコード

次に、ユーザーのデータをテーブルに入力できます。 ユーザー名パスワード トム・ケロD1C377lKE ジョン ba1T7vnz9AWgk ビルpaLUvRWsRLZ4U

これらの暗号化されたパスワードに対応する平文コードは、それぞれ Tom、John、Bill です。パスワードの最初の 2 文字に基づいて Jam 文字列を作成します。

  1. <?php
  2. $enteredPassword.
  3. $salt = substr($enteredPassword, 0, 2);
  4. $userPswd = crypt($enteredPassword, $salt);
  5. // $userPswd は、 username MySQL
  6. crypt() と Apache のパスワード応答検証システム アプリケーションに一緒に保存されます
  7. $host = "localhost"; //Host
  8. $username = "Tom" //Username
  9. $passwd = "Hello world "; /Password
  10. $db = "users"; //データベース名
  11. // 検証フラグを渡すかどうかを設定します。デフォルトは no です
  12. $authorization = 0;
  13. // ユーザーにアカウントとパスワードの入力を求めます
  14. if ( isset($ PHP_AUTH_USER) && isset($PHP_AUTH_PW)){
  15. mysql_pconnect($host, $username, $passwd) or die("MySQL サーバーに接続できません!");
  16. mysql_select_db($db) or die("接続できませんselect Database!" ; username = '$PHP_AUTH_USER' AND passwd = '$encrypted_pswd'";
  17. // クエリを実行
  18. if (mysql_numrows(mysql_query($query)) == 1) {
  19. $authorization = 1;
  20. }
  21. }
  22. if (! $authorization){
  23. header('WWW-Authenticate: Basic realm="ユーザー認証"');
  24. header('HTTP/1.0 401 Unauthorized');
  25. print "検証に合格できません";
  26. 終了;
  27. }else {
  28. print "Encrypted";
  29. }
  30. ?>
  31. コードをコピー
デフォルトで使用される crypt() は最も安全ではないため、より高いセキュリティ パフォーマンスが必要な場合は、より優れたものが必要ですmd5() などのアルゴリズム、この関数は MD5 ハッシュ アルゴリズムを使用します。
MD5経由で暗号化するにはどうすればよいですか?

PHP の MD5 によって暗号化された関数は md5() で、その関数の 1 つは混合です。

ハッシュ関数は、可変長のメッセージを「メッセージ ダイジェスト」とも呼ばれる固定長のハッシュ出力に変換できます。これは、固定長の文字列を使用できるため、非常に便利です。ファイルの整合性をチェックし、デジタル署名とユーザーを検証します。身元。 PHP の組み込み md5() ハッシュ関数は、可変長メッセージを 128 ビット (32 文字) のメッセージ ダイジェストに変換します。混合エンコーディングの興味深い特徴は、混合結果が元のプレーン コードの内容に依存しないため、混合情報を分析しても元のプレーン コードを取得できないことです。文字列内の 1 文字だけを変更した場合でも、MD5 ハイブリッド アルゴリズムは 2 つのまったく異なる結果を計算します。まず、以下の表の内容とそれに対応する結果を見てみましょう:

文字列を混合するには md5() を使用します

<php
$input = "Hello, PHP world!";
$output = md5($input);
    print "Output: $output ";
  1. ?>
  2. コードをコピー
結果: 出力: 7996b5e0804042fd531907a4900f190e 結果の長さは 32 文字であることに注意してください。 $input の値を少し変更してみましょう。 md5() を使用して、わずかに変更された文字列をシャッフルする

<?php
$input = "Hello,PHP World!";
$output = md5($input);
    print "Output: $output ";
  1. ?>
  2. コードをコピー
結果: ハッシュ2: f0456d48ed06a5c35b1e42561fa7a016
2 つの結果の長さは 32 文字ですが、平文の小さな変更が結果に大きな変更を引き起こすことがわかります。この機能を使用して、データの小さな変更を確認できます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。