[PHP] password_verify 사용시 false 만 돌아온다

2024. 1. 17. 09:29기술집/WEB관련

728x90

 

참 오랜만에 글쓰네요.

사는게 바쁘다보니 블로그는 소홀해집니다.

 

그래도 한번씩은 써야겠다싶어서..

이번에 일하다가 삽질한거 한번 남겨봅니다.

진짜 난 ㅂㅅ 이야 ㅠㅠ

 

이번에 관리자페이지를 완전히 옮기면서 작업중에

로그인 처리를 들어갑니다.

당연히 password_hash 와 password_verify 콤비로 하는데..

자꾸 false만 돌아옵니다 ;;

 

 

 

아니... 왜?? 

일단 DB 접속이 하나를 건너뛰어 다니는 구조입니다.

AWS RDS 인데 지금 있는건 외부 웹호스팅이거든요.

그래서 일단 EC2를 거쳐서 데이터를 가져오고 있습니다.

 

계속 비교가 안되길래, EC2로 요청하기전에 입력 된 비밀번호를 바로 hash 처리해서

비교를 해 봤습니다.

diff 값이 그건데요. 여기서는 잘 됩니다.

그런데 DB에서 바로 비교를 해도, DB에서 비밀번호를 가져와서 EC2에서 비교를해도..

무조건 false 입니다.

 

그렇게 검색으로 돌아다니던 중에.. php password_verify 값이 false 로 나오는 이유중에 하나가

DB에 저장될때랑 그냥 있는거랑 문자코드가 달라서 그럴수도 있다고 합니다.

 

 

그래서 문자 코드도 내 봤습니다.

아스키가 나오네요.

코드 변환하는것도 있던데 그거랑 상관없이 무조건 이놈이 나옵니다.

둘 다 똑같습니다.

그럼 문제가 없을텐데...

 

또 어떤분이 hash 변환시에 앞뒤로 뭔가 들어갔다고해서 60글자로 잘라내니까 되었다고합니다.

그래서 저도 했습니다.

그래도 안됩니다.

 

와... 진짜 현기증 나네요.

지난번에도, 지금까지도 잘 써왔던 password_verify 비교하는게 왜 false만 나오는걸까요??

도무지 원인을 찾을수가 없었습니다.

 

그렇게 뭐가 이상하지..하고 찾아보던중!!!!!!

 

 

어...라??????

왜 $pw로 받아왔는데 비교는 $password 를 하고있는거지????

$password는 없는데.......!!!!!!!

 

 

바로 변경.

 

 

정상적으로 true 값이 돌아옵니다..

어휴 병신 ;;;

 

 

컴퓨터에서 뭐가 안될때는 케이블부터 확인하라는거랑 똑같네요.

 

내 코드부터 확인해라.

난 완벽한줄 알았는데.. 역시 날 안믿지만 최후의최후에는 날 믿어버리니

그게 문제야 ㅋㅋㅋㅋㅋ

php password_verify 비교값이 false로 돌아올때에는 이제 앞으로

저 부분부터 보게 될것같습니다.

 

문제의 원인은 우선 나한테서 찾아보자 ㅠ 히밤 ㅠㅠ

 

 

 

728x90