bcrypt는 같은 string을 넘겨도 계속 다른 결과물을 만들어냅니다
md5나 sha256과 같은 단방향 해시함수와는 다릅니다
자세한 내용은 아래 내용을 읽어보세요
https://d2.naver.com/helloworld/318732
bcrypt로 비밀번호 일치를 확인하려면, 해시된 값과 해시되지 않은 plain text를 verify함수에 넣고 올바른지 체크하는 방법이 유일합니다
$bcrypt = new Bcrypt(15); $hash = $bcrypt->hash('password'); $isGood = $bcrypt->verify('password', $hash);
라라벨의 인증기능을 쓰지 않고 직접 구현하시려면
패스워드 암호화는 password_hash()
검증은 password_verify()
를 쓰시는게 좋습니다.
현재 개인정보 수정 페이지를 만들고있는데
해쉬때문에 질문 올려요
먼저 로그인된 상태에서 개인정보수정을 누르면 비밀번호 확인 페이지로 넘어가고
입력한 값을 가지고 데이터베이스에 있는 유저정보의 비밀번호와 비교하는데
$userpass = \App\User::where('email',$request->input('user-id'))->first()->password;
$inputvalue = bcrypt($request->input('user-pass'));
if($userpass === $inputvalue){
return view('auths.statuseditcheck');
} else {
return "비밀번호 불일치";
}
이렇게 코딩했습니다
사용자가 입력한 값을 bcrypt로 암호화 하고 이 값을 유저테이블패스워드 값하고 비교해서
맞으면 다른 페이지를 리턴하려 하는데 똑같은 비밀번호 입력해도 두개의 암호화 된 값이 틀리네요 ,,
bcrypt 에서부터 잘못된것같은데,, 제가 모르는 무언가가 있는거 같은데 조언좀 부탁드리겠습니다 ....
비밀번호 123456
유저테이블 암호값 : $2y$10$FlxFGMlDhFZoLyFR4XN0Fu6I4NQdq7wG5Im3NDeMgchk32vq4KutW
inpu 입력 암호값 : $2y$10$CutK2b2kXf8E8DhIvonBhuzN5EIQaW7A5rBpS2ZYWlO8rCbXlmUx.
다른 함수일까요 ,,, 두번 해쉬된 건지 잘 모르겠습니다,.,,,