天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

編寫php應(yīng)用程序?qū)崿F(xiàn)摘要式身份驗(yàn)證的方法詳解

通基本身份認(rèn)證一樣,也可以使用php網(wǎng)頁(yè)處理HTTP請(qǐng)求報(bào)頭字段來(lái)匹配摘要式身份驗(yàn)證信息。例如下邊的代碼使用header()函數(shù)要求客戶端使用Digest驗(yàn)證,它在HTTP消息報(bào)頭中增加了一個(gè)WWW-Authenticate字段:
header('WWW-Authenticate:Digest Realm="MyRealm",nonce="47alf7cf25ce7",algorithm=MD5,qop="auth"');
--------------------------------------------------------------------------------
下邊代碼描述的是一個(gè)使用摘要式身份驗(yàn)證的網(wǎng)頁(yè)(首先取消Apache驗(yàn)證配置)。
復(fù)制代碼 代碼如下:
<?php
$realm="MyRealm";
//如果沒(méi)有驗(yàn)證信息,則發(fā)送報(bào)頭要求瀏覽器使用摘要式身份驗(yàn)證
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 "賬號(hào)/密碼錯(cuò)誤!";
 exit;
}else{
 //使用函數(shù)http_digest_parse解析驗(yàn)證信息
 $data=http_digest_parse($_SERVER["php_AUTH_DIGEST"]);
 if(!$data){
  header("HTTP/1.0 401 Unauthorization Required");
  echo "賬號(hào)/密碼錯(cuò)誤!";
  exit;
  }else{
   //根據(jù)HTTP協(xié)議,自己構(gòu)建一個(gè)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);}
   //將自己構(gòu)建的response值與瀏覽器構(gòu)建并發(fā)送過(guò)來(lái)的response值對(duì)比,如果相同那么就證明用戶名和密碼輸入是正確的
   if($data['response']==$valid_response){
    echo "驗(yàn)證通過(guò)!";
   }else{
    header("HTTP/1.0 401 Unauthorization Required");
    echo("賬號(hào)/密碼錯(cuò)誤!");
    exit;
   }
  }
function http_digest_parse($digest_str){
 $needed_parts=array('nonce'=>1,'nc'=>1,'cnonce'=>1,'qop'=>1,'username'=>1,'uri'=>1,'response'=>1);
 //使用正則表達(dá)式解析Authorization報(bào)頭的內(nèi)容
 preg_match_all('@(/w+)=([/'"]?)([a-zA-Z0-9=.//_-]+)/2@',$digest_str,$result,PREG_SET_ORDER);
 //將結(jié)果填充$data數(shù)組,并返回
 $data=array();
 foreach($result as $m){
  $data[$m[1]]=$m[3];
  unset($needed_parts[$m[1]]);
 }
 return $needed_parts?false:$data;
}
?>

php技術(shù)編寫php應(yīng)用程序?qū)崿F(xiàn)摘要式身份驗(yàn)證的方法詳解,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 美女白虎穴 | 婷婷五月久久丁香国产综合 | 久久这里有精品 | 精品国产成人系列 | 我的美女房东未删减版免费观看 | 亚洲精品国产高清嫩草影院 | vagaa哇嘎黄短片 | couo福利姬图库 | 精品精品国产自在现拍 | 精品国产人成亚洲区 | 国产精品久久欧美一区 | 久久全国免费久久青青小草 | 中国老头oldday tv | 777精品久无码人妻蜜桃 | 俄罗斯19girl video9 | 最新老头恋老OLDMAN | 高清 国产 在线 亚洲 | 人人模人人干 | 国产AV精品国语对白国产 | 免费人成网站在线观看10分钟 | 久久成人伊人欧洲精品AV | 成在线人免费 | 国产99久久久国产精品免费看 | 韩国无遮羞禁动漫在线观看 | 国模孕妇模特季玥之粉红 | 精品国产午夜福利在线观看蜜月 | 无码国产伦一区二区三区视频 | 亚洲精品自在线拍2019 | sao虎影院桃红视频在线观看 | 天天爽夜夜爽 | 被黑人掹躁10次高潮 | 含羞草传媒在线观看 | 琉璃美人煞在线观看 | 久久婷婷色一区二区三区 | 免费果冻传媒2021在线观看 | 思思99热久久精品在线6 | 国产成+人欧美+综合在线观看 | 中文字幕本庄优花喂奶 | 午夜看片网 | 好男人在线观看免费视频WWW | 中文字幕成人免费高清在线 |