개발 Q&A

제목 password_hash 비교연산 가능여부
카테고리 PHP
글쓴이 신일 작성시각 2019/10/18 14:04:35
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 9272   RSS

안녕하세요, 궁금한점이 있어 문의 드립니다.

혹시 아시는 분 계실까요?

 

password_hash로 암호화 된 것을 password_verify(a,b)로 a와 b를 비교해서 같으면 TRUE를 뱉는다는 것은 알겠는데요.

제가 필요한 것은 아래와 같은데 방법이 있을까요?

 

숫자를 password_hash로 암호화 했다는 가정하에 

'암호화 된 값'  >= '임의의 값'      (비교해서 크거나 같거나)

 다음글 변수 값을 배열로 돌려서 input에 값 넣기 (3)
 이전글 이미지 첨부가 포함된 수정 페이지에서... (7)

댓글

변종원(웅파) / 2019/10/18 14:51:00 / 추천 0

위 상황은 복호화를 해서 비교를 하셔야합니다. 해시값을 비교하는게 아니라 암호화 된걸 풀어서 비교하셔야 합니다.

구글에서 php 암복호화 검색하시면 됩니다.

엽토군 / 2019/10/18 14:54:28 / 추천 0
안돼요. password_hash() 는 단방향 암호화를 합니다.
박쥐 / 2019/10/18 15:51:05 / 추천 0

해쉬된 값과 임의의 값이 숫자인가요?

일단 같다는 조건은 verify 함수로 알 수 있겠죠.

그렇다면 문제는 크다인데

가령 임의의 값이 X 이고 해쉬된 값이 Y 라고 할 때

해쉬된 임의의 값 H(X) 로 놓고 Y 값이랑 Verify 해서 같으면 같은 것이고

같지 않다면 H(X-1) 과 Y를 비교하여 Verify 해서 같으면 X는 Y보다 큰 것이고

또 같지 않다면 H(X-2) 과 Y를 비교하여 Verify 해서 같으면 X는 Y보다 큰 것이라고 볼 수 있겠네요.

정리해보면

 

임의의 X값을 해쉬하여 비교하고 같지 않다면 X값에 -n 값을 계속 반복하여 

해쉬된 값과 비교한다.

 

그런데 왜 이렇게 해야 하죠? ㅎㅎㅎ 이유가 궁금하네요.