0
我正在對我的登錄邏輯進行安全審計,並試圖找出哪個密碼檢查更安全,算法更好。下面是這兩種方法在僞PHP代碼:PHP登錄頁面安全審計
方法一:
$bcrypt = new Bcrypt();
$password_hash = $bcrypt->hash($_POST['password']);
$result = mysqli_query_check_login($username, $password_hash);
if(mysqli_numb_rows($result) > 0) {
//is valid
}
方法二:
$bcrypt = new Bcrypt();
$result = mysqli_query_check_login($username);
//Note $result->password is a bcrypt hash
if($bcrypt->verify($_POST['password'], $result->password)) {
//is valid
}
不同的是method I
運行bcrypt哈希值,然後發送用戶名和散列密碼mysql查詢。 Method II
僅通過用戶名從mysql獲取散列密碼,然後在PHP中比較這兩個值。
有沒有安全差異?
謝謝。