2014-02-28 2 views

답변

0

다시 똑같이 해시하고 2 개의 문자열을 비교하십시오. 대부분의 암호를 비교하는 방법입니다.

+0

비교할 때 동일한 암호를 사용할 수 있도록 각 암호에 대해 생성 된 소금을 저장해야합니다 (모든 암호에 고유 한 소금을 사용합니다. 비밀로 유지하면 안전합니다) –

+0

정확히 전체 보안 위반시 실제 비밀번호를 저장하지 않는 것이 포인트입니다. –

+0

그래서 소금을 저장해야한다는 것을 의미합니다. 그래서 각 사용자의 소금과 소금이 들어있는 소금물을 안전하게 보관하고 있습니까? – Shepard

1

validatePassword 기능에 실제로 $password 매개 변수를 사용하고 있지 않습니다. 참고 : $password은 일반 텍스트 암호로 입력해야하며 두 번째 매개 변수에는 이전에 저장 한 해시 된 버전이 포함되어야합니다. 이것을 시도하십시오 :

public function validatePassword($password){ 
    return password_verify($password, self::model()->password); 
} 

또한 소금물 처리 자체가 최선입니다. PASSWORD_DEFAULT 옵션을 사용하고 소금을 제거하지 마십시오. PHP가 처리합니다. password_needs_rehash()을 사용하여 PHP 버전 업그레이드가 기본값을 변경하는 경우 암호를 다시 해할 필요가 있는지 확인할 수 있습니다.

관련 문제