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()來檢查它們。

相關問題