사용자 영역과 관리 영역이있는 사이트가 있습니다. 관리 영역에는 사용자 생성 페이지와 관리자 생성 페이지가 있습니다. 사용자 및 관리자 페이지에서 내가 암호를 해시 아래의 코드를 사용 :다른 소금을 사용하는 phpass CheckPassword?
$hasher = new PasswordHash(8, false);
$password = $HTTP_POST_VARS['password'];
$hash = $hasher->HashPassword($password);
$HTTP_POST_VARS['password'] = $hash;
를 사용자 페이지의 경우, 암호를 확인하는 코드는 다음과 같습니다이 완벽하게 잘 작동
$hasher = new PasswordHash(8, false);
$check = $hasher->CheckPassword($password, $arrData[$conf['PASSWORD']['FIELD']]);
if ($check) {
//login...
}
. 내 사용자 암호가 해시되고 암호를 올바르게 검사합니다. 그러나 관리자 로그인 페이지에서 동일한 코드를 사용하지만 작동하지 않습니다. 데이터베이스에서 올바른 정보를 가져 오지만 CheckPassword를 사용하면 암호가 일치하지 않습니다. 암호의 시작 부분이 동일하기 때문에 소금에 관련이있을 수도 있습니다.
그런데 PHP 4.3을 사용하고 있습니다.
왜 PHP 4.3을 사용하고 있습니까? – Martin
@ Martin 왜 그렇게 중요합니까? 누군가 구식 기술을 사용해야하는 이유는 여러 가지가 있습니다. OP 질문에 대답하는 데 도움이됩니다. – Matt