0

웹 사이트에서 다이제스트 인증을 구현하고 싶습니다. 그러나, 나는 암호화 된 사용자 테이블과 사용자 테이블이 있습니다. 내가 기본 인증을 사용한다면 나는 $ _SERVER [ 'PHP_AUTH_PW']를 암호화 할 수 있음을 안다. 다이제스트 인증에도 동일한 방법을 사용할 수 있습니까?mysql에 저장된 암호화 된 암호로 다이제스트 인증

+0

http://php.net/manual/en/features.http-auth.php –

+0

db의 암호화 된 암호에 대한 해결 방법이 필요합니다. – davidlee

답변

1

이 같은 것을 찾고 계십니까?

define('MY_REALM', 'THIS IS A SECURE FACILITY, AND I MEAN THAT UNIRONICALLY'); 
$valid = false; 
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']) { 
    // Use your DB here; prepared statements are your friend: 
    $userData = $user->getByUsername($_SERVER['PHP_AUTH_USER']); 
    if (!empty($userData)) { 
     $valid = password_verify($_SERVER['PHP_AUTH_PW'], $userData['password_hash']); 
    } 
} 
if (!$valid) { 
    header('WWW-Authenticate: Basic realm="'.MY_REALM.'"'); 
    header('HTTP/1.0 401 Unauthorized'); 
    echo 'Text to send if user hits Cancel button'; 
    exit; 
} 

HTTP 다이제스트 인증 방법에는 별다른 이점이 없습니다. 웹 사이트에서 HTTPS를 사용하고 비밀번호는 password_hash()으로 저장하고 password_verify()을 사용하여 확인하십시오.