등록 스크립트에서는 PHP의 비밀번호 해시() 함수를 사용하여 사용자 비밀번호를 암호화하고 데이터베이스에 저장합니다. . 사용자가 로그인을 시도하면, 입력한 비밀번호를 데이터베이스의 해시된 버전과 비교하기 위해 비밀번호 확인()을 사용하게 됩니다. 그러나 비밀번호가 일치하지 않습니다. 이는 비밀번호 확인() 호출에 문제가 있음을 나타냅니다.
password_verify()는 두 개의 매개변수를 사용합니다.
일반 텍스트 비밀번호와 해시된 버전을 비교하여 일치하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
로그인 스크립트에서 일반 텍스트 비밀번호($pwd)와 해시된 비밀번호($password)를 Password_verify()에 전달합니다.
if(($user_id == $p_num) && (password_verify($pwd, $password))){
그러나 var_dump()를 사용하여 작업 중에 변수를 검사할 수도 있습니다. 비교를 통해 값이 변경될 수 있습니다. var_dump() 출력은 일반 텍스트 비밀번호($pwd)가 "1"로 수정되는 반면 해시된 비밀번호($password)는 데이터베이스에 저장된 것과 동일하게 유지됨을 보여줍니다.
문제를 해결하려면 코드에서 var_dump() 호출을 제거하고 $pwd에 로그인 중에 사용자가 입력한 일반 텍스트 비밀번호가 포함되어 있는지 확인하세요. 로그인 코드는 다음과 같습니다.
if(($user_id == $p_num) && (password_verify($pwd, $password))){
위 내용은 Password_Verify() 함수가 해시된 비밀번호를 확인하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!