개발/PHP

[Error] password_verify가 언제나 false를 반환

leebera_ 2021. 11. 26. 19:04

문제점

여러가지가 존재

  1. DB에서 hash값을 저장하는 컬럼의 길이가 60자 미만
  2. password_verify 사용 시 첫번째 매개변수가 비교할 값, 두번째가 해시값인데 서로 바꿔 사용한 경우
  3. password_verify에 들어가는 첫번째 매개변수인 비교할 값에 해시값을 넣은 경우

 

해결법

각 번호에 해당하는 문제의 해결법

  1. 컬럼의 길이를 60자 이상으로 변경
  2. 매개변수에 들어가야하는 값에 맞게 넣어줌
  3. 해시값이 아닌 일반 값을 넣어 비교

 

 

대체 어디서 본건지 난 바보같이 3번에 해당하는 문제였다

심지어 공식문서에도 잘 나와있었다

남이 쓴 예제보단 공식문서부터 잘 살펴보자

 


 

참고

 

Why is password_verify returning false?

I'm using a password_verify to check my hashed password. I have PHP 5.5: $this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); // if no connection errors (= working

stackoverflow.com