91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用編寫php應用程序實現摘要式身份驗證

發布時間:2021-10-13 10:49:11 來源:億速云 閱讀:144 作者:小新 欄目:開發技術

小編給大家分享一下如何使用編寫php應用程序實現摘要式身份驗證,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

通基本身份認證一樣,也可以使用PHP網頁處理HTTP請求報頭字段來匹配摘要式身份驗證信息。例如下邊的代碼使用header()函數要求客戶端使用Digest驗證,它在HTTP消息報頭中增加了一個WWW-Authenticate字段:
header('WWW-Authenticate:Digest Realm="MyRealm",nonce="47alf7cf25ce7",algorithm=MD5,qop="auth"');
--------------------------------------------------------------------------------
下邊代碼描述的是一個使用摘要式身份驗證的網頁(首先取消Apache驗證配置)。

復制代碼 代碼如下:


<?php
$realm="MyRealm";
//如果沒有驗證信息,則發送報頭要求瀏覽器使用摘要式身份驗證
if(!isset($_SERVER['PHP_AUTH_DIGEST'])){
 header("WWW-Authenticate:Digest Realm=/"$realm/",nonce=/"".uniqid()."/",algorithm=MD5,qop=/"auth/"");
 header("HTTP/1.0 401 Unauthorization Required");
 echo "賬號/密碼錯誤!";
 exit;
}else{
 //使用函數http_digest_parse解析驗證信息
 $data=http_digest_parse($_SERVER["PHP_AUTH_DIGEST"]);
 if(!$data){
  header("HTTP/1.0 401 Unauthorization Required");
  echo "賬號/密碼錯誤!";
  exit;
  }else{
   //根據HTTP協議,自己構建一個response值
   $A1=md5('admin:'.$realm.':password');
   $A2=md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']);
   $valid_response=
   md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2);}
   //將自己構建的response值與瀏覽器構建并發送過來的response值對比,如果相同那么就證明用戶名和密碼輸入是正確的
   if($data['response']==$valid_response){
    echo "驗證通過!";
   }else{
    header("HTTP/1.0 401 Unauthorization Required");
    echo("賬號/密碼錯誤!");
    exit;
   }
  }
function http_digest_parse($digest_str){
 $needed_parts=array('nonce'=>1,'nc'=>1,'cnonce'=>1,'qop'=>1,'username'=>1,'uri'=>1,'response'=>1);
 //使用正則表達式解析Authorization報頭的內容
 preg_match_all('@(/w+)=([/'"]?)([a-zA-Z0-9=.//_-]+)/2@',$digest_str,$result,PREG_SET_ORDER);
 //將結果填充$data數組,并返回
 $data=array();
 foreach($result as $m){
  $data[$m[1]]=$m[3];
  unset($needed_parts[$m[1]]);
 }
 return $needed_parts?false:$data;
}
?>

以上是“如何使用編寫php應用程序實現摘要式身份驗證”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

大悟县| 汉阴县| 平安县| 贺州市| 越西县| 青冈县| 礼泉县| 临邑县| 保定市| 泊头市| 海阳市| 司法| 永安市| 云龙县| 介休市| 洞头县| 怀远县| 常州市| 广东省| 绵竹市| 紫金县| 灵宝市| 宜良县| 邻水| 理塘县| 彭州市| 阜平县| 商洛市| 都昌县| 修水县| 白银市| 志丹县| 萝北县| 金阳县| 庄河市| 高要市| 恭城| 上思县| 尚志市| 萍乡市| 马龙县|