2013-05-23 2 views
0

Phpass를 사용하여 사용자의 암호를 해시합니다. 비밀 번호 생성 및 해싱 - 괜찮아요. 로그인 할 때 비밀번호 확인 - 괜찮습니다.CheckPassword를 사용하여 다른 결과를 반환하는 동일한 Phpasscode

새 암호로 변경할 때 이전 암호를 확인합니다. 항상 false를 반환합니다!

기본적으로 암호는 동일하지만 암호가 맞더라도 true를 반환하지 않습니다. 암호를 입력하고 데이터베이스와 입력 폼에서 호출하는 대신 함수에 해시를 붙여 넣어 암호를 직접 확인하려고 시도했지만 여전히 false를 반환합니다. 지금까지의 내가 손해를보고입니다

$user = $query->fetch(PDO::FETCH_ASSOC); 

$t_hasher = new PasswordHash(8, FALSE); 
$check = $t_hasher->CheckPassword($oldpass, $user['password']); 

if (!$check) { showMessage("Incorrect Password","Your password was not changed.","icon-lock", "warning"); } 
else { ... change the password etc. 

를 I로 : 여기

$user = $query->fetch(PDO::FETCH_ASSOC); 

$t_hasher = new PasswordHash(8, FALSE); 
$check = $t_hasher->CheckPassword($password, $user['password']); 

if (!$check) { die("failed"); } 
else { ... log them in etc. 

을 그리고 작동하지 않습니다 암호 변경 검사입니다 : 여기

작동 로그인 코드는 이것이 작동하지 않는 이유가 없다는 것을 알 수 있습니다.

+0

비밀번호를 변경했을 수도 있습니다. 로그인 코드가 계속 작동합니까? – Adder

+0

예, 작동하지만 문제를 파악하고 답변을 드리겠습니다 ... – Adam

답변

1

나는 바보 같아서 암호 변경을위한 데이터베이스 쿼리를 실행하는 것을 잊어 버렸다.